Heim  >  Artikel  >  Datenbank  >  Detaillierte Erläuterung des Einfügetriggers (Einfügen) in MySQL

Detaillierte Erläuterung des Einfügetriggers (Einfügen) in MySQL

巴扎黑
巴扎黑Original
2017-05-19 15:25:426664Durchsuche

Trigger einfügen

Unter Berücksichtigung der bisherigen Grundkenntnisse betrachten wir nun jeden unterstützten Triggertyp und seine Unterschiede.

Der INSERT-Trigger wird vor oder nach der Ausführung der INSERT-Anweisung ausgeführt. Sie müssen die folgenden Punkte kennen:

1 Im INSERT-Triggercode können Sie auf eine virtuelle Tabelle mit dem Namen NEW verweisen, um auf die eingefügte Zeile zuzugreifen; Im BEFORE INSERT-Trigger kann der Wert in NEW auch aktualisiert werden (wodurch der eingefügte Wert geändert werden kann).

3 Für die Spalte AUTO_INCREMENT enthält NEW 0, bevor INSERT ausgeführt wird, und 0, nachdem INSERT ausgeführt wird Neuer automatisch generierter Wert.

Hier ist ein Beispiel (ein praktisches und nützliches Beispiel). AUTO_INCREMENT-Spalten verfügen über Werte, die von MySQL automatisch zugewiesen werden. Möglichkeit, den neu generierten Wert zu bestimmen, aber hier ist eine bessere Möglichkeit:

Eingabe:

Analyse: Dieser Code erstellt einen Trigger namens neworder, der NACH der Ausführung von INSERT ON-Aufträgen folgt. Beim Einfügen einer neuen Bestellung in die Auftragstabelle generiert MySQL eine neue Bestellnummer und speichert diese in order_num. Der Trigger ruft diesen Wert aus NEW.order_num ab und gibt ihn zurück. Dieser Trigger muss NACH INSERT ausgeführt werden, da die neue order_num nicht generiert wurde, bevor die BEFORE INSERT-Anweisung ausgeführt wird. Bei Verwendung dieses Triggers wird bei jeder Einfügung in Bestellungen immer eine neue Bestellnummer zurückgegeben.
create trigger neworder after insert on orders for each row select new .order_num;

Um diesen Auslöser zu testen, versuchen Sie, eine neue Zeile wie diese einzufügen:

Eingabe:

Ausgabe:
insert into orders(order_date,cust_id) values(now(),10001);

Detaillierte Erläuterung des Einfügetriggers (Einfügen) in MySQLAnalyse: Bestellungen enthält 3 Spalten. order_date und cust_id müssen angegeben werden, order_num wird automatisch von MySQL generiert und jetzt wird order_num automatisch zurückgegeben.

VORHER oder NACHHER? Typischerweise wird BEFORE zur Datenvalidierung und -bereinigung verwendet (der Zweck besteht darin, sicherzustellen, dass die in die Tabelle eingefügten Daten tatsächlich die erforderlichen Daten sind). Dieser Tipp gilt auch für UPDATE-Trigger.

[Verwandte Empfehlungen]

1.

MySQL-kostenloses Video-Tutorial

2.

Einführung in MySQL-Trigger und wie man Trigger erstellt und löscht

3.

MySQL-Zeichensatz und Kollationssequenz-Tutorial

4.

Einführung in den MySQL-Zeichensatz und die Kollationssequenz

5.

Detaillierte Erläuterung der MySQL-Transaktionen zur Verwendung von Aufbewahrungspunkten und zum Ändern des Standard-Commit-Verhaltens

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Einfügetriggers (Einfügen) in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn