Un trigger è una procedura che viene attivata automaticamente quando viene eseguita qualsiasi modifica in una tabella del database. Non è possibile chiamare o eseguire manualmente alcun trigger. Lo scopo principale di utilizzare i trigger è mantenere l'integrità del database e può essere utilizzato con i vincoli di integrità referenziale che costringe le regole di integrità. In un DBMS, quando si verifica qualsiasi evento di insert, aggiornamento ed eliminazione. Diversi tipi di trigger sono supportati dal database. I trigger sono principalmente classificati in due modi. Uno è prima del grilletto e un altro è dopo il grilletto. Prima che i trigger vengano chiamati prima che ogni evento venga eseguito nella tabella e dopo che i trigger vengono chiamati dopo aver eseguito qualsiasi evento nella tabella. Come si installa MariaDB e si applica diversi tipi di trigger nel server di database MariaDB su Ubuntu è mostrato in questo tutorial.
Installazione di MariaDB:
Esegui il comando di seguito per aggiornare il sistema e installare il server MariaDB e il client.
# sudo apt-get update && sudo apt-get installa mariadb-server mariadb-client
Tipo 'y e premere Invio per completare il processo di installazione.
Esegui il seguente comando per avviare il server MariaDB.
# sudo systemctl avvia mariadb
Controllare che il server funziona correttamente o no. L'output del seguente comando mostrerà lo stato dei dettagli del server. L'output lo indica Mariadb 10.1.30 Verion è in esecuzione.
# sudo systemctl status mariadb
Esegui il comando seguente se si desidera interrompere il server. Non eseguire questo comando ora.
# sudo systemctl stop mariadb
Imposta il database e le tabelle
È necessario creare un database e due o più tabelle per verificare come funzionano i trigger. Prima di tutto, esegui il client MySQL per configurare il database. Chiederà la password di root per accedere al server di database.
# sudo mysql -u root
Crea un database chiamato negozio.
> Crea un archivio di database;Seleziona questo nuovo database:
> Usa Store;Crea tre tabelle in negozio database per applicare azioni di trigger su questi. Qui, prodotti, stock e stock_add Le tabelle sono create.
Crea prodotti da tavoloOra, inserisci alcuni dati in queste tre tabelle.
Crea dopo trigger
È possibile creare dopo trigger per eseguire automaticamente qualsiasi azione dopo aver inserito o aggiornato o eliminato i record di una tabella particolare. Qui, prodotti E stock Le tabelle sono selezionate per creare dopo eliminare trigger. I dati della tabella di scorta dipendono dai dati della tabella dei prodotti. Quindi, se viene rimosso un record dalla tabella dei prodotti, è necessario rimuovere i record correlati della tabella delle azioni. Crea la seguente procedura di trigger per eliminare automaticamente qualsiasi record correlato dalla tabella delle azioni quando qualsiasi record viene rimosso dalla tabella dei prodotti. In questo trigger, l'ID eliminato è riconosciuto da vecchio.id.
Delimitatore //
Dopo che il trigger è stato creato per la tabella dei prodotti. Ora devi testare che il trigger funziona correttamente o no. Eseguire la seguente query per rimuovere un record dai prodotti dove id È 101 e controlla i dati di entrambi i prodotti e le tabelle delle scorte. Dopo aver eseguito la query, scoprirai che il record correlato della tabella di scorta viene rimosso da After Trigger. Nessun record per il valore ID, 101, sarà trovato in entrambe le tabelle.
Crea prima dei trigger
Prima che il trigger venga utilizzato per intraprendere qualsiasi azione prima di inserire o aggiornare o eliminare qualsiasi o più record da una tabella particolare. Qui, stock E stocks_add La tabella viene utilizzata per creare prima del trigger. Il valore della tabella Current_Stock del titolo dipende dal valore della quantità della tabella stocks_add. Se si aggiorna qualsiasi valore di quantità della tabella stocks_add, quindi la tabella delle azioni deve essere aggiornata. Quindi, se un valore di quantità esistente della tabella stocks_add diminuisce, allora corrente_stock di titoli verrà ridotto e se il valore della quantità aumenta, quindi corrente_stock verrà aumentato. Crea prima dell'aggiornamento trigger per la tabella stocks_add. In questo trigger, il valore di quantità modificato viene calcolato sottraendo la vecchia quantità da una nuova quantità.
Delimitatore //Prima dell'aggiornamento, controlla i valori correnti di entrambi i titoli e tabelle stocks_add.
> Seleziona * dalle scorte;
Supponiamo, è necessario aggiornare il valore della quantità della tabella stocks_add dove Codice prodotto È 103 E data di ingresso È 2018-01-01 che è 30 Ora. Se si desidera aggiornare il valore di 75 Quindi eseguire la seguente query di aggiornamento e controllare di nuovo entrambe le tabelle. La quantità aumentata è, 75-30 = 45. Quindi, dopo l'aggiornamento, il trigger verrà licenziato e la tabella Current_Stock della tabella delle azioni verrà impostata come, 300+45 = 345.
L'uso di due tipi di trigger è mostrato in questo tutorial. In modo simile, è possibile creare altri tipi di prima e dopo trigger per le tabelle di database in base ai requisiti.