Dieser Artikel erläutert anhand von Beispielen die Konzepte, Prinzipien und die Verwendung von MySQL-Triggern. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: 1. Das Konzept des Auslösers
Das Obige ist das von Baidu bereitgestellte Trigger-Konzept. Mein Verständnis des Trigger-Konzepts ist, dass beim Ausführen einer SQL-Anweisung die Ausführung dieser SQL-Anweisung automatisch die Ausführung anderer SQL-Anweisungen auslöst. So einfach ist das. Super einfache Beschreibung: sql1->trigger->sqlN, ein SQL löst mehrere SQL aus 2. Vier Elemente der Trigger-Erstellung (1) Überwachungsort (Tabelle) 3. Erstellen Sie einen Trigger Nachfrage: Bei der Bestellung sollte der Bestand der entsprechenden Ware entsprechend reduziert werden, das heißt, der Lagerbestand sollte um die Anzahl der gekauften Waren verringert werden. Bestelltabelle: ord Erstellen Sie zunächst eine Tabelle und fügen Sie einige Daten hinzu: Tabelle erstellen Waren( gid int, Name varchar(20), Zahl, kleine Ganzzahl ); Tabelle ord( erstellen oid int, gid int, viel kleiner ); in Warenwerte einfügen (1, 'Katze', 40); in Warenwerte einfügen (2, „Hund“, 63); in Warenwerte einfügen (3, „Schwein“, 87); Analysieren Sie dann anhand der vier Elemente der Trigger-Erstellung:
Erstellen Sie abschließend den Trigger: Trigger t1 erstellen nach einfügen auf Bestellung für jede Zeile beginnen Aktualisiere den Warensatz num=num-2, wobei gid = 1 ist; Ende$ Analyse: Der Name des Triggers ist t1, die Triggerzeit ist danach, die Überwachungsaktion ist Einfügen, Überwachung der Ord-Tabelle, für jede Zeile wird am Ende gesprochen, merken Sie es sich einfach hier, schreiben Sie das Triggerereignis zwischen Anfang und Ende, hier ist eine Aktualisierungsanweisung. Dies bedeutet, dass unabhängig von meiner Bestellung die Lagermenge des Produkts mit der Produktnummer 1 um 2 reduziert wird. Hinweis: Führen Sie den obigen Code nicht zuerst aus, da das Standardausführungsendezeichen von MySQL ; ist. Wenn Sie die obige SQL-Anweisung ausführen, wird die Ausführung von MySQL automatisch beendet, wenn es auf ein ; stößt, und die End-Anweisung wird nicht ausgeführt. Daher müssen wir zuerst die Endkennung von MySQL in andere Zeichen ändern. Normalerweise werden $ oder $$ verwendet. Hier wird $ als Endkennung der Ausführung verwendet. Verwenden Sie die folgende Anweisung, um das Endzeichen der MySQL-Ausführung zu ändern. Trennzeichen $ //Setzen Sie das MySQL-Ausführungsendezeichen, der Standard ist; 4. Vorhandene Trigger anzeigen und löschen (1) Vorhandene 5. Referenzieren Sie Zeilenvariablen in Triggern (1) Nach dem Ausführen der Einfügeoperation auf dem Triggerziel wird eine neue Zeile erstellt. Wenn die Variable der neuen Zeile im Triggerereignis benötigt wird, kann das Schlüsselwort „new“ verwendet werden, um dies anzuzeigen. (2) Nach dem Ausführen der Löschoperation auf dem Triggerziel wird eine alte Zeile erstellt. Wenn die Variable der alten Zeile im Triggerereignis benötigt wird, kann das Schlüsselwort „old“ verwendet werden, um dies anzuzeigen. (3) Nach dem Ausführen der Aktualisierungsoperation auf dem Triggerziel ist der ursprüngliche Datensatz die alte Zeile und der neue Datensatz die neue Zeile. Die Schlüsselwörter „new“ und „old“ können jeweils zum Bedienen verwendet werden. Bei einer Bestellung den Lagerbestand der entsprechenden Ware reduzieren und einen Trigger erzeugen: Trigger t2 erstellen nach einfügen auf Bestellung für jede Zeile beginnen Aktualisieren Sie den Warensatz num=num-new.much, wobei gid=new.gid ist; Ende$ Beim Löschen einer Bestellung den Lagerbestand der entsprechenden geänderten Ware erhöhen und einen Trigger erstellen: Trigger t3 erstellen nach löschen auf Bestellung für jede Zeile beginnen Aktualisieren Sie den Warensatz num=num+old.much, wobei gid=old.gid ist; Ende$ Wenn die Abnahmemenge einer Bestellung aktualisiert wird, wird die Lagermenge des entsprechenden Artikels geändert und ein Trigger erstellt: Trigger t4 erstellen vor aktualisieren auf Bestellung für jede Zeile beginnen Warensatz aktualisieren, Num=Num+alt.viel-neu.viel, wobei gid = neu.gid; Ende$ 6. Der Unterschied zwischen vorher und nachher Die After-Operation dient zum Auslösen des Ereignisses nach der Ausführung der Überwachungsaktion.
Erstellen Sie einen Trigger: Trigger t5 erstellen vor einfügen auf Bestellung für jede Zeile beginnen Deklarieren Sie restNum int; Wählen Sie Num in RestNum aus Waren, wobei gid = new.gid; wenn new.mh > restNum dann setze neu.viel = restNum; Ende wenn; Aktualisieren Sie den Warensatz num=num-new.much, wobei gid=new.gid ist; Ende$ Hinweis: Wenn hier after verwendet wird, wird ein Fehler gemeldet. Wenn after verwendet wird, wird zuerst der Einfügevorgang ausgeführt, d. h. der Bestellvorgang wird eingefügt und dann werden Bestellmenge und Lagerbestand beurteilt, um die neue Bestellmenge zu erhalten. Der Bestellvorgang wurde jedoch ausgeführt, sodass ein Fehler gemeldet wird. Hier muss die Operation „Before“ verwendet werden. 7. Was ist der Zweck jeder Zeile? In Oracle-Triggern werden Trigger in Zeilentrigger und Anweisungstrigger unterteilt. Zum Beispiel: Trigger erstellen tn nach aktualisieren auf xxtable für jede Zeile #Jede Zeile ist betroffen und das auslösende Ereignis wird ausgeführt, genannt Zeilentrigger begin SQLServer; Ende$ implementieren: Aktualisiere xxtable, setze xxx=xxx, wobei ID>100; Angenommen, der Änderungsvorgang umfasst 100 Zeilen. Wie oft wird SQLN ausgelöst? Antwort: Es wird 100 Mal ausgelöst. expandieren: Wenn in Oracle nicht für jede Zeile geschrieben wird, wird das Triggerereignis nur einmal ausgeführt, unabhängig davon, wie viele Zeilen gleichzeitig von der Aktualisierungsanweisung betroffen sind. Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“, „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“ und „Zusammenfassung der allgemeinen MySQL-Funktionen“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
<<: Schritt-für-Schritt-Anleitung zum Erstellen einer Kalenderkomponente mit React
>>: Installation und Verwendung der Ubuntu 18.04 Serverversion (Bild und Text)
Der spezifische Code für die Verwendung von jQuer...
Wir alle haben Dateien auf unseren Computern gesp...
Vorbereitung: 1. Installieren Sie die VMware Work...
Zusammenfassung: Problemlösungsaufzeichnungen von...
Inhaltsverzeichnis Offizielle Einführung in Node....
<br />Verwandte Artikel: Web-Kenntnisse: Lös...
Durch Klicken Bilder zu wechseln, ist im Leben ei...
Bei jüngsten Produkttests wurde das Problem festg...
In diesem Artikel erfahren Sie mehr über die Inst...
Inhaltsverzeichnis Aktualisieren Sie das Bild von...
Ein MySQL Custom Value ist ein temporärer Contain...
Inhaltsverzeichnis Fehlender Stammspeicherort Off...
Vorwort: Verwenden Sie das Element-Framework in v...
Installieren Sie memcached yum install -y memcach...
Die Frage wird zitiert von: https://www.zhihu.com...