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

Auslösen in SQL

In diesem Artikel lernen wir anhand eines Beispiels das Konzept des Triggers in SQL und seine Implementierung kennen.

Ein Trigger in der strukturierten Abfragesprache ist eine Reihe von prozeduralen Anweisungen, die automatisch ausgeführt werden, wenn es eine Rückmeldung zu bestimmten Ereignissen in der Tabelle in der Datenbank gibt. Trigger werden verwendet, um die Integrität der Daten in der Datenbank zu schützen.

Sehen wir uns die folgende Situation an, um das Konzept des Triggers in SQL zu verstehen:

Angenommen, Supriya ist IT-Manager in einem multinationalen Unternehmen. Wenn der Datensatz eines neuen Mitarbeiters in die Datenbank eingegeben wird, muss sie die „Glückwunsch“-Nachricht an jeden neuen Mitarbeiter senden. Wenn es fünf oder sechs Mitarbeiter gibt, kann Supriya dies manuell tun, aber wenn die Anzahl der neuen Mitarbeiter mehr als tausend beträgt, muss sie in einem solchen Zustand den Trigger in der Datenbank verwenden.

Daher muss Supriya den Auslöser in der Tabelle erstellen, der automatisch eine Glückwunschnachricht an die neuen Mitarbeiter sendet, sobald ihr Datensatz in die Datenbank eingefügt wird.

Der Trigger wird immer mit der konkreten Tabelle in der Datenbank ausgeführt. Wenn wir die Tabelle entfernen, werden auch alle mit dieser Tabelle verknüpften Trigger automatisch gelöscht.

Trigger in der Structured Query Language werden nur aufgerufen, bevor die Ereignisse eingetreten sind oder nachdem die Ereignisse eingetreten sind.

Nur drei Ereignisse treten im Trigger vor oder nach den Ereignissen auf:die Insert-Ereignisse, die Update-Ereignisse oder die Delete-Ereignisse.

1. Ereignis einfügen :Insert-Ereignis tritt auf, wenn ein neuer Datensatz in die Tabelle eingefügt wird.

2. UPDATE-Ereignis :Ein Aktualisierungsereignis tritt immer dann auf, wenn die vorhandenen Datensätze in der Tabelle aktualisiert werden.

3. Ereignis löschen: Das Delete-Ereignis tritt auf, wenn der Datensatz aus der Tabelle gelöscht wird.

Arten von Auslösern in der strukturierten Abfragesprache

Im Folgenden sind die sechs Arten von Triggern aufgeführt, die in der Structured Query Language verwendet werden:

1. AFTER INSERT Trigger:

Der After-Insert-Trigger wird in SQL aufgerufen, nachdem die Datensätze in die Tabelle eingefügt wurden.

2. NACH UPDATE Auslöser:

Der After-Update-Trigger wird in SQL aufgerufen, nachdem die vorhandenen Datensätze in der Tabelle aktualisiert wurden.

3. NACH LÖSCHEN Auslöser:

Der After-Delete-Trigger wird in SQL aufgerufen, nachdem der Datensatz aus der Tabelle gelöscht wurde.

4. BEFORE INSERT Trigger:

Der Before-Insert-Trigger wird in SQL aufgerufen, bevor die Datensätze in die Tabelle eingefügt werden.

5. VOR DER AKTUALISIERUNG Auslöser:

Der Before-Update-Trigger wird in SQL aufgerufen, bevor die vorhandenen Datensätze in der Tabelle aktualisiert werden.

6. VOR LÖSCHEN Auslöser:

Der Before-Delete-Trigger wird in SQL aufgerufen, bevor der Datensatz aus der Tabelle gelöscht wird.

Syntax des Triggers 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
  • In der Trigger-Syntax müssen wir den Trigger-Namen direkt nach dem Schlüsselwort CREATE TRIGGER in der Syntax definieren.
  • Nach dem Triggernamen müssen wir definieren, welchen Trigger wir aufrufen möchten, das Before-Trigger- oder das After-Trigger-Schlüsselwort mit dem Ereignisnamen.
  • Dann müssen wir den Tabellennamen angeben, auf dem der Trigger aufgetreten ist.
  • Nach dem Tabellennamen müssen wir den Trigger auf Zeilenebene oder den Trigger auf Spaltenebene definieren.
  • Und am Ende müssen wir die SQL-Anweisung schreiben, die auf die auftretenden Ereignisse einwirkt.

Beispiel für Trigger in SQL

Um das Konzept des Triggers in SQL zu verstehen, müssen wir eine Tabelle erstellen, auf der der Trigger ausgeführt werden soll.

Die folgende Abfrage erstellt die Student-Tabelle in der SQL-Datenbank.

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);

Die folgende Abfrage zeigt die Struktur der Student-Tabelle:

DESC-Schüler;

Feld Typ NULL Schlüssel Standard Extra
Student_RollNo INT NEIN PRI NULL
Vorname Varchar(40) JA NULL
English_Marks INT JA NULL
Physik_Marken INT JA NULL
Chemistry_Marks INT JA NULL
Biology_Marks INT JA NULL
Maths_Marks INT JA NULL
Total_Marks INT JA NULL
Prozent INT JA NULL

Die folgende Abfrage löst den Trigger vor dem Einfügen des Studentendatensatzes in die Tabelle aus:

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;

Die folgenden Abfragen fügen den Datensatz in die Student-Tabelle ein.

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);  

Um die Ausgabe der obigen INSERT-Anweisung zu überprüfen, müssen Sie die folgende SELECT-Anweisung eingeben:

SELECT * FROM Student

Ausgabe:

Student_RollNo Vorname English_Marks Physik_Marken Chemistry_Marks Biology_Marks Maths_Marks Total_Marks Prozent
1 Raman 90 80 75 70 92 407 81

Vorteile von Triggern in SQL

Im Folgenden sind die drei Hauptvorteile von Triggern in der Structured Query Language aufgeführt:

  1. SQL bietet eine alternative Möglichkeit, die Daten und die referenzielle Integrität in den Tabellen zu erhalten.
  2. Trigger helfen bei der automatischen Ausführung der geplanten Aufgaben.
  3. Sie fangen die Fehler in der Datenbankebene verschiedener Unternehmen ab.
  4. Sie ermöglichen den Datenbankbenutzern, Werte vor dem Einfügen und Aktualisieren zu validieren.

Nachteile von Triggern in SQL

Im Folgenden sind die Hauptnachteile von Triggern in der strukturierten Abfragesprache aufgeführt:

  1. Sie werden nicht kompiliert.
  2. Es ist nicht möglich, die Fehler in Triggern zu finden und zu debuggen.
  3. Wenn wir den komplexen Code im Trigger verwenden, wird die Anwendung langsamer ausgeführt.
  4. Trigger erhöht die hohe Belastung des Datenbanksystems.