1 EinleitungDieser Artikel fasst Trigger in MySQL zusammen. Ausgehend vom Konzept der Trigger stellt dieser Artikel anhand von Beispielen vor, wie Trigger erstellt, verwendet und gelöscht werden. 2 Trigger-EinführungMySQL-Trigger sind wie gespeicherte Prozeduren in MySQL eingebettete Programme. Ein Trigger ist ein Ereignis, das eine Aktion auslöst, einschließlich INSERT, UPDATE und DELETE. Wenn ein Trigger definiert ist, wird der Trigger aktiviert, um die entsprechende Operation auszuführen, wenn die Datenbank diese Anweisungen ausführt. Der Trigger ist ein Befehlsdatenbankobjekt, das sich auf die Tabelle bezieht. Wenn ein bestimmtes Ereignis in der Tabelle eintritt, wird das Objekt aktiviert. Ein Trigger ist eine spezielle gespeicherte Prozedur. Der Unterschied besteht darin, dass eine gespeicherte Prozedur mit der Call-Anweisung aufgerufen werden muss, ein Trigger jedoch nicht mit der Call-Anweisung aufgerufen werden muss und auch nicht manuell gestartet werden muss. Solange ein vordefiniertes Ereignis eintritt, wird der Trigger automatisch von MySQL aufgerufen. Trigger können andere Tabellen abfragen und komplexe SQL-Anweisungen enthalten. 3 Trigger erstellen(1) Erstellen Sie einen Trigger mit nur einer Ausführungsanweisung Die grammatische Struktur ist wie folgt: CREATE TRIGGER Triggername Triggerzeit Triggerereignis ON Tabellenname FÜR JEDE ZEILE Triggerstmt trigger_name: benutzerdefinierter Triggername; trigger_time: identifiziert das Auslöseereignis, das als „before“ (ausgeführt vor dem Eintreten der Zeit) oder „after“ (ausgeführt nach dem Eintreten des Ereignisses) angegeben werden kann; trigger_event: identifiziert das Trigger-Ereignis, einschließlich INSERT, UPDATE und DELETE; table_name: die Tabelle, auf der der Trigger erstellt wird; trigger_stmt: Anweisung zur Triggerausführung. (2) Erstellen Sie einen Trigger mit mehreren Ausführungsanweisungen Die grammatische Struktur ist wie folgt: CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FÜR JEDE ZEILE BEGINNEN Anweisungsausführungsliste END Wenn ein Trigger mindestens eine Ausführungsanweisung hat, müssen mehrere Ausführungsanweisungen mit BEGIN und END umschlossen werden, die jeweils den Anfang und das Ende des gesamten Codeblocks angeben. Um den Triggervorgang zu demonstrieren, erstellen wir drei Datentabellen: Tabelle tb_student erstellen( ID int Primärschlüssel auto_increment, Name varchar(10) ); Tabelle tb_before_trigger erstellen( ID int Primärschlüssel auto_increment, Anzahl Int, Zeit_jetzt Datum/Uhrzeit NULL STANDARD AKTUELLER_ZEITSTEMPEL ); Tabelle tb_after_trigger erstellen( ID int Primärschlüssel auto_increment, Anzahl Int, Zeit_jetzt Datum/Uhrzeit NULL STANDARD AKTUELLER_ZEITSTEMPEL ); Beispiel 1: Erstellen Sie einen Trigger mit dem Namen before_trigger. Dieser Trigger wird ausgelöst, bevor jeder Einfügevorgang in der Tabelle tb_student ausgeführt wird. Wenn er ausgelöst wird, wird ein Datensatz, der die Gesamtzahl der Datensätze in der Tabelle tb_student enthält, in die Tabelle before_trigger eingefügt. Trennzeichen // Trigger erstellen before_trigger vor dem Einfügen auf tb_student für jede Zeile beginnen in tb_before_trigger (num) einfügen, count(*) aus tb_student auswählen; Ende // Trennzeichen ; Beispiel 2: Erstellen Sie einen Trigger mit dem Namen after_trigger, der vor jedem Einfügevorgang in der Tabelle tb_student ausgelöst wird. Bei Auslösung wird ein Datensatz, der die Gesamtzahl der Datensätze in der Tabelle tb_student enthält, in die Tabelle before_trigger eingefügt. Trennzeichen // Trigger erstellen after_trigger nach Einfügen auf tb_student für jede Zeile beginnen in tb_after_trigger (num) einfügen, count(*) aus tb_student auswählen; Ende // Trennzeichen ; Testen wir die in Beispiel 1 und Beispiel 2 erstellten Trigger und fügen einen Datensatz in die Tabelle tb_student ein (in den ersten drei Tabellen sind keine Datensätze vorhanden): in tb_student (Name) Werte einfügen („zhangsan“); Nach dem Einfügen können Sie die Daten in den drei Tabellen anzeigen: tb_student-Tabelle: tb_before_trigger-Tabelle: tb_after_trigger-Tabelle: Es ist ersichtlich, dass nach der Ausführung des Einfügevorgangs in der Tabelle tb_student auch die anderen beiden Tabellen jeweils Datensätze aktualisieren. Der Num-Wert der Tabelle tb_before_trigger ist 0, was beweist, dass der Datensatz eingefügt wurde, bevor der Einfügevorgang in tb_student ausgeführt wurde; der Num-Wert der Tabelle tb_after_trigger ist 1, was beweist, dass der Datensatz eingefügt wurde, nachdem der Einfügevorgang in tb_student ausgeführt wurde – dies ist der Unterschied zwischen vorher und nachher. Bei anderen bedingten Auslösern ähnelt die Verwendung Beispiel 1 und Beispiel 2, wird in diesem Artikel jedoch nicht demonstriert. 4 Auslöser anzeigen(1) Anweisung zum Anzeigen von Triggern Mit der Anweisung „show triggers“ können Sie die in Beispiel 1 und Beispiel 2 erstellten Trigger anzeigen: Auslöser anzeigen; Ausgabe: (2) Trigger in der Trigger-Tabelle anzeigen Alle in der MySQL-Datenbank in der Trigger-Tabelle der Datenbank information_schema gespeicherten Trigger können über die folgende Abfrageanweisung angezeigt werden: Wählen Sie * aus information_schema.triggers, wobei Triggername = „vor_Trigger“ ist. Ausgabe: Wenn keine Abfragebedingung angegeben ist, werden alle Triggerinformationen angezeigt. 5. Trigger löschenMit der Anweisung DROP TRIGGER können Sie einen Trigger löschen. Die grundlegende Syntaxstruktur lautet wie folgt: DROP TRIGGER [Schemaname] Triggername Unter diesen gibt schema_name den Datenbanknamen an und ist ein optionaler Parameter. Wenn er weggelassen wird, bedeutet dies, dass der Trigger aus der aktuellen Datenbank gelöscht wird. Beispiel 3: Löschen Sie den in Beispiel 1 erstellten Trigger before_trigger Auslöser vor_Auslöser löschen; 6 FazitZu bestimmten Zeiten können Trigger das Tüpfelchen auf dem i sein, sie sind jedoch nicht sehr effizient. Versuchen Sie daher, sie so wenig wie möglich zu verwenden.
Oben finden Sie eine ausführliche Erläuterung der Trigger der MySQL-Datenbank. Weitere Informationen zu MySQL-Triggern finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Zusammenfassung der Methoden zur Änderung des Git-Commit-Protokolls
>>: Warum wird nicht empfohlen, in Vue eine leere Zeichenfolge als Klassennamen zu verwenden?
Adobe Brackets ist eine Open Source-, einfache un...
Konfigurieren Sie zunächst die Projektartefakte K...
Während des Projekts habe ich begonnen, die js re...
Detailliertes Beispiel zum Abrufen des Maximalwer...
Zum ersten Mal schreiben. Gestatten Sie mir, mich...
Grundlegende Umgebungskonfiguration Bitte kaufen ...
Eine ausgereifte Datenbankarchitektur ist nicht v...
Das folgende Skript wird für die geplante Sicheru...
Im Internet und in vielen Büchern gibt es viele T...
Ich habe ein halbes Jahr lang nicht gebloggt, wofü...
Dieser Artikel beschreibt einen Vorschlag für ein...
In diesem Artikel werden zwei Methoden zur Implem...
Referenz: Offizielle Docker-Redis-Dokumentation 1...
Ich lerne derzeit etwas über MySQL-Optimierung. D...
Kürzlich habe ich im Internet den Artikel „Build ...