MySQL-Trigger: ausführliche Erklärung und einfaches Beispiel

MySQL-Trigger: ausführliche Erklärung und einfaches Beispiel

Einfaches Beispiel für einen MySQL-Trigger

Grammatik

CREATE TRIGGER <Triggername> - Trigger müssen einen Namen mit maximal 64 Zeichen haben, gefolgt von Trennzeichen. Die Benennung ist ähnlich wie bei anderen Objekten in MySQL.

{ VORHER | NACHHER } – Der Auslöser verfügt über eine Einstellung für die Ausführungszeit: Er kann vor oder nach dem Auftreten des Ereignisses festgelegt werden.

{ INSERT | UPDATE | DELETE } – Sie können auch die auslösenden Ereignisse festlegen: Sie können während der Ausführung von Einfügen, Aktualisieren oder Löschen ausgelöst werden.

ON <Tabellenname> --Der Trigger gehört zu einer bestimmten Tabelle: Wenn ein Einfüge-, Aktualisierungs- oder Löschvorgang für diese Tabelle ausgeführt wird, wird der Trigger aktiviert. Wir können nicht zwei Trigger demselben Ereignis für dieselbe Tabelle zuweisen.

FOR EACH ROW – Ausführungsintervall des Triggers: Die Klausel FOR EACH ROW weist den Trigger an, die Aktion in jeder zweiten Zeile auszuführen, und nicht einmal für die gesamte Tabelle.

< SQL-Anweisung auslösen > --Der Trigger enthält die auszulösende SQL-Anweisung: Die Anweisung hier kann jede zulässige Anweisung sein, einschließlich zusammengesetzter Anweisungen, aber für die Anweisungen hier gelten die gleichen Einschränkungen wie für Funktionen.

--Zum Erstellen eines Triggers (CREATE TRIGGER) müssen Sie über entsprechende Berechtigungen verfügen. Wenn Sie bereits Root-Benutzer sind, reicht dies aus. Dies weicht vom SQL-Standard ab.

Beispiele

Beispiel 1:

Tabelle tab1 erstellen

Tabelle löschen, wenn vorhanden: tab1;
Tabelle erstellen tab1(
  tab1_id varchar(11)
);

Tabelle tab2 erstellen

Tabelle löschen, wenn Tab2 vorhanden ist;
TABELLE ERSTELLEN tab2(
  tab2_id varchar(11)
);

Erstellen Sie einen Trigger: t_afterinsert_on_tab1

Funktion: Nach dem Hinzufügen von Datensätzen in der Tabelle tab1 werden die Datensätze automatisch zur Tabelle tab2 hinzugefügt

TRIGGER LÖSCHEN, WENN EXISTIERT: t_afterinsert_on_tab1;
TRIGGER ERSTELLEN t_afterinsert_on_tab1 
NACH INSERT ON tab1
FÜR JEDE REIHE
BEGINNEN
   in tab2(tab2_id) Werte(new.tab1_id) einfügen;
ENDE;

Testen Sie es

INSERT INTO tab1(tab1_id) Werte('0001');

Sehen Sie sich die Ergebnisse an

WÄHLEN SIE * AUS tab1;
WÄHLEN SIE * VON Tab2;

Beispiel 2:

Trigger erstellen: t_afterdelete_on_tab1

Funktion: Nach dem Löschen der Datensätze in der Tabelle tab1 werden die entsprechenden Datensätze in der Tabelle tab2 automatisch gelöscht.

TRIGGER LÖSCHEN, WENN EXISTIERT: t_afterdelete_on_tab1;
TRIGGER ERSTELLEN t_afterdelete_on_tab1
NACH DEM LÖSCHEN AUF Tab1
FÜR JEDE REIHE
BEGINNEN
   Löschen aus Tab2, wobei tab2_id = alt.tab1_id;
ENDE;

Testen Sie es

LÖSCHEN AUS tab1, WO tab1_id='0001';

Sehen Sie sich die Ergebnisse an

WÄHLEN SIE * AUS tab1;
WÄHLEN SIE * VON Tab2;

Vielen Dank fürs Lesen, ich hoffe, es kann Ihnen helfen, danke für Ihre Unterstützung dieser Site!

Das könnte Sie auch interessieren:
  • MySQL-Trigger-Verwendungsszenarien und Methodenbeispiele
  • MySQL-Triggerprinzip und Analyse von Anwendungsbeispielen
  • MySQL-Trigger: Beispielanalyse zum Erstellen mehrerer Trigger
  • Einfaches Beispiel für die Definition und Verwendung von MySQL-Triggern
  • Detailliertes Beispiel für die Verwendung von MySQL-Triggern
  • MySQL verwendet Trigger, um das Zeilenlimit der Tabelle in der Datenbank zu lösen. Detaillierte Erklärung und Beispiele
  • Beispiel-Tutorial zur Verwendung von MySQL-Triggern zum Migrieren und Synchronisieren von Daten
  • Eine kurze Zusammenfassung und Beispiele für MySQL-Trigger
  • Ein einfaches Beispiel und eine Einführung in MySQL-Trigger
  • Detaillierte Erklärung des MySQL-Triggerbeispiels

<<:  So stellen Sie DoNetCore mit Nginx in der Alibaba Cloud bereit

>>:  Detaillierte Erklärung der Nodejs-Array-Warteschlange und der forEach-Anwendung

Artikel empfehlen

So starten/stoppen Sie den Tomcat-Server in Java

1. Projektstruktur 2. Rufen Sie Tomcat.java auf P...

js realisiert die Lupenfunktion der Shopping-Website

In diesem Artikel wird der spezifische Code von j...

Eine kurze Diskussion über den Unterschied zwischen src und href in HTML

Einfach ausgedrückt bedeutet src „Ich möchte dies...

Vue implementiert Baumtabelle durch Elementbaumsteuerung

Inhaltsverzeichnis Implementierungs-Effekt-Diagra...

Einführung in die Verwendung von Unicode-Zeichen in Webseiten (&#, \u usw.)

Die ersten Computer konnten nur ASCII-Zeichen ver...

Eine kurze Zusammenfassung meiner Erfahrungen beim Schreiben von HTML-Seiten

Es sind drei oder vier Monate vergangen, seit ich ...

Galeriefunktion durch natives Js implementiert

Inhaltsverzeichnis Der erste Der Zweite Native Js...

IE6 implementiert min-width

Zunächst einmal wissen wir, dass dieser Effekt ei...

Verwendung der MySQL-Zeitdifferenzfunktionen TIMESTAMPDIFF und DATEDIFF

Verwendung der Zeitdifferenzfunktionen TIMESTAMPD...

SVN-Installation und grundlegende Bedienung (grafisches Tutorial)

Inhaltsverzeichnis 1. Was ist SVN? 2. Methoden zu...

Schritte zur Installation von MySQL mit Docker unter Linux

Als Tester müssen Sie während des Lernprozesses h...

Win10 Installation Linux System Tutorial Diagramm

Um eine virtuelle Maschine auf einem Windows-Syst...

Praktisches Tutorial zum Ändern des MySQL-Zeichensatzes

Vorwort: In MySQL unterstützt das System viele Ze...