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);
Analyse: 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-TutorialEinführung in MySQL-Trigger und wie man Trigger erstellt und löscht MySQL-Zeichensatz und Kollationssequenz-TutorialEinführung in den MySQL-Zeichensatz und die KollationssequenzDetaillierte Erläuterung der MySQL-Transaktionen zur Verwendung von Aufbewahrungspunkten und zum Ändern des Standard-Commit-VerhaltensDas 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!