Database
 sql >> Database >  >> RDS >> Database

Trigger in SQL

In questo articolo impareremo il concetto di trigger in SQL e la sua implementazione con l'aiuto di un esempio.

Un trigger in Structured Query Language è un insieme di istruzioni procedurali eseguite automaticamente quando c'è un feedback su determinati eventi sulla tabella nel database. I trigger vengono utilizzati per proteggere l'integrità dei dati nel database.

Vediamo la seguente situazione per comprendere il concetto di trigger in SQL:

Supponiamo che Supriya sia il responsabile della tecnologia dell'informazione in una multinazionale. Quando il record di un nuovo dipendente viene inserito nel database, deve inviare il messaggio "Congratulazioni" a ciascun nuovo dipendente. Se ci sono cinque o sei dipendenti, Supriya può farlo manualmente, ma se il numero di nuovi dipendenti è superiore a mille, in tali condizioni, deve utilizzare il trigger nel database.

Pertanto, Supriya deve creare il trigger nella tabella, che invierà automaticamente un messaggio di "Congratulazioni" ai nuovi dipendenti una volta che il loro record è stato inserito nel database.

Il trigger viene sempre eseguito con la tabella specifica nel database. Se rimuoviamo la tabella, anche tutti i trigger associati a quella tabella vengono eliminati automaticamente.

I trigger nel linguaggio di query strutturato vengono chiamati solo prima che si siano verificati gli eventi o dopo che si sono verificati gli eventi.

Solo tre eventi si verificano nel trigger prima o dopo gli eventi sono gli eventi Inserisci, Aggiorna o Elimina eventi.

1. INSERIRE Evento :l'evento Insert si verifica ogni volta che un nuovo record viene inserito nella tabella.

2. Aggiorna evento :si verifica un evento di aggiornamento ogni volta che i record esistenti vengono aggiornati nella tabella.

3. EVENTO ELIMINA: L'evento Delete si verifica ogni volta che il record viene eliminato dalla tabella.

Tipi di trigger nel linguaggio di query strutturato

Di seguito sono riportati i sei tipi di trigger utilizzati nel linguaggio di query strutturato:

1. Attivazione DOPO INSERT:

Il trigger dopo l'inserimento viene richiamato in SQL dopo l'inserimento dei record nella tabella.

2. Innesco DOPO L'AGGIORNAMENTO:

Il trigger dopo l'aggiornamento viene richiamato in SQL dopo l'aggiornamento dei record esistenti nella tabella.

3. Dopo l'eliminazione trigger:

Il trigger dopo l'eliminazione viene richiamato in SQL dopo che il record è stato eliminato dalla tabella.

4. PRIMA INSERT Trigger:

Il trigger prima dell'inserimento viene richiamato in SQL prima che i record vengano inseriti nella tabella.

5. PRIMA DELL'AGGIORNAMENTO Attivazione:

Il trigger prima dell'aggiornamento viene richiamato in SQL prima che i record esistenti nella tabella vengano aggiornati.

6. PRIMA DELETE Trigger:

Il trigger prima dell'eliminazione viene richiamato in SQL prima che il record venga eliminato dalla tabella.

Sintassi del trigger in SQL:

CREATE TRIGGER Trigger_Name  

[BEFORE | AFTER]  [Insert | Update | Delete] 

ON [Table_Name] 

[FOR EACH ROW | FOR EACH COLUMN] 

AS 

Set of SQL Statement
  • Nella sintassi del trigger, dobbiamo definire il nome del trigger subito dopo la parola chiave CREATE TRIGGER nella sintassi.
  • Dopo il nome del trigger, dobbiamo definire quale trigger vogliamo invocare, la parola chiave trigger before o after trigger con il nome dell'evento.
  • Quindi, dobbiamo menzionare il nome della tabella su cui si è verificato il trigger.
  • Dopo il nome della tabella, dobbiamo definire il trigger a livello di riga o di colonna.
  • E alla fine, dobbiamo scrivere l'istruzione SQL che agisce sugli eventi che si verificano.

Esempio di trigger in SQL

Per comprendere il concetto di trigger nell'SQL, dobbiamo creare una tabella su cui eseguire il trigger.

La query seguente crea la tabella Student nel database SQL.

CREATE TABLE Student(

Student_rollno INT NOT NULL PRIMARY KEY,

FirstName varchar(40),

English_Marks INT,

Physics_Marks INT,

Chemistry_Marks INT,

Biology_Marks INT,

Maths_Marks INT,

Total_Marks INT,

Percentage INT);

La seguente query mostra la struttura della tabella Student:

Studente DESC;

Campo Digita NULLO Chiave Predefinito Extra
Studente_RollNo INT NO PRI NULLO
Nome Varchar(40) SI NULLO
Inglese_Marks INT SI NULLO
Fisica_Marchi INT SI NULLO
Chimica_Marchi INT SI NULLO
Biologia_Marks INT SI NULLO
Matematica_Marchi INT SI NULLO
Punti_totali INT SI NULLO
Percentuale INT SI NULLO

La query seguente attiva il trigger prima dell'inserimento del record dello studente nella tabella:

CREATE TRIGGER Student _Marks  

BEFORE INSERT 

ON 

Student 

FOR EACH ROW 

SET new.Total_Marks = new.English_Marks + new.Physics_Marks + new.Chemistry_Marks + new.Biology_Marks + new.Maths_Marks,   

new.Percentage = ( new.Total_Marks / 500) * 100;

Le seguenti query inseriscono il record nella tabella Studente.

INSERT INTO Student (Student_RollNo, First_Name, English_Marks, Physics_Marks, Chemistry_Marks,Biology_Marks, Maths_Marks, Total_Marks, Percentage) VALUES ( 1, ‘Raman’, 90, 80, 75, 70 ,92, 0, 0);  

Per controllare l'output della precedente istruzione INSERT, devi digitare la seguente istruzione SELECT:

SELECT * FROM Student

Risultato:

Student_RollNo Nome English_Marks Fisica_Marchi Chimica_Marks Biology_Marks Maths_Marks Total_Marks Percentuale
1 Raman 90 80 75 70 92 407 81

Vantaggi dei trigger in SQL

Di seguito sono riportati i tre vantaggi principali dei trigger nel linguaggio di query strutturato:

  1. SQL fornisce un modo alternativo per mantenere i dati e l'integrità referenziale nelle tabelle.
  2. I trigger aiutano a eseguire automaticamente le attività pianificate.
  3. Raccolgono gli errori nel livello del database di varie aziende.
  4. Consentono agli utenti del database di convalidare i valori prima di inserirli e aggiornarli.

Svantaggi dei trigger in SQL

Di seguito sono riportati i principali svantaggi dei trigger nel linguaggio di query strutturato:

  1. Non sono compilati.
  2. Non è possibile trovare ed eseguire il debug degli errori nei trigger.
  3. Se utilizziamo il codice complesso nel trigger, l'esecuzione dell'applicazione sarà più lenta.
  4. Trigger aumenta il carico elevato sul sistema di database.