Trigger-EinführungEin Trigger ist eine spezielle gespeicherte Prozedur, die mit einer Tabelle verknüpft ist und ausgelöst und ausgeführt werden kann, wenn Daten in eine Tabelle eingefügt, gelöscht oder geändert werden. Trigger verfügen über ausgefeiltere und komplexere Datensteuerungsfunktionen als die Standardfunktionen der Datenbank selbst. Vorteile von Triggern:
Verwenden von Triggern in MySQLErstellen eines Triggers Der Trick beim Erstellen von Triggern besteht darin, sich die vier Elemente eines Triggers zu merken:
Die grundlegende Syntax zum Erstellen eines Triggers lautet wie folgt: TRIGGER ERSTELLEN -- trigger_name: der Name des Auslösers; -- tirgger_time: Auslösezeit, VORHER oder NACHHER; -- trigger_event: Auslöseereignis, das INSERT, DELETE oder UPDATE sein kann; Triggername Triggerzeit Triggerereignis AN -- tb_name: gibt den Namen der Tabelle an, in der der Trigger erstellt wird, und in welcher Tabelle der Trigger erstellt wird; tb_name -- FOR EACH ROW bedeutet, dass jede Operation an einem Datensatz, die das Triggerereignis erfüllt, den Trigger auslöst. FÜR JEDE REIHE -- trigger_stmt: Der Hauptteil des Triggers, der aus einer einzelnen SQL-Anweisung oder mehreren Anweisungen bestehen kann, die von BEGIN und END umschlossen sind. Auslöser_stmt
Hinweis: Für das gleiche Trigger-Ereignis mit der gleichen Trigger-Zeit in der gleichen Tabelle kann nur ein Trigger definiert werden. Neue und alte Rekorde auslösen NEW und OLD werden in MySQL definiert, um die Datenzeile anzugeben, die den Trigger in der Tabelle ausgelöst hat, in der sich der Trigger befindet:
Erstellen Sie einen Trigger, um den entsprechenden Produktbestandsdatensatz zu aktualisieren, wenn ein Benutzer ein Produkt kauft. Der Code lautet wie folgt: -- Trigger löschen, Trigger löschen, Triggername – falls vorhanden, wird er nur gelöscht, wenn er existiert. Trigger löschen, falls vorhanden, myty1; -- Einen Trigger erstellen. Trigger erstellen mytg1 – der Name des myty1-Triggers nach dem Einfügen bei Bestellungen – Bestellungen, für welche Tabelle der Trigger erstellt werden soll; für jede Zeile beginnen Produktsatz aktualisieren, Num = Num-New.Num, wobei Pid = New.Pid; Ende; --Datensätze in die Auftragstabelle einfügen, in Aufträge einfügen, Werte (null, 2,1); -- Fragen Sie den Bestandsaktualisierungsstatus des Produkts in der Produkttabelle ab. Wählen Sie * aus dem Produkt aus. Erstellen Sie einen Trigger, um den entsprechenden Produktbestandsdatensatz zu aktualisieren, wenn der Benutzer eine Bestellung löscht. Der Code lautet wie folgt: -- Trigger erstellen Trigger erstellen mytg2 nach dem Löschen bei Bestellungen für jede REIHE beginnen -- Setzen Sie das Inventar zurück und fügen Sie das Update-Produktset num = num+old.num, wobei pid=old.pid, erneut hinzu. Ende; - Auftragsdatensätze löschen, löschen aus Aufträgen, bei denen oid = 2; -- Fragen Sie den Bestandsaktualisierungsstatus des Produkts in der Produkttabelle ab. Wählen Sie * aus dem Produkt aus. Der Unterschied zwischen vorher und nachher vor Vor der Ausführung einer Anweisung nach Nach der Ausführung einer Anweisung Wenn die Bestellmenge den Lagerbestand überschreitet, ändern Sie die Bestellmenge auf den maximalen Lagerbestand: -- -- Erstelle einen Trigger vor dem Erstellen eines Triggers mytg3 vor dem Einfügen in Bestellungen für jede Zeile beginnen -- Definieren Sie eine Variable zum Empfangen der Bestandsdeklaration n int default 0; -- Inventar abfragen und num bis n zuweisen Wähle Num in N aus dem Produkt, wobei PID = neue.PID ist; -- Bestimmen Sie, ob die Bestellmenge größer als der Lagerbestand ist, wenn new.num>n dann -- Größer als der Lagerbestand bei Änderung der Bestellung (Lagerbestand auf Maximalmenge geändert) setze neue.num = n; Ende wenn; Produktsatz aktualisieren, Num = Num-New.Num, wobei Pid = New.Pid; Ende; --Datensätze in die Auftragstabelle einfügen, in Aufträge einfügen, Werte (null, 3,50); -- Fragen Sie den Bestandsaktualisierungsstatus des Produkts in der Produkttabelle ab. Wählen Sie * aus dem Produkt aus. -- Abfrage der Auftragstabelle select * from orders; CursorEinführung in Cursor Die Funktion des Cursors besteht darin, die durch Abfragen der Datenbank zurückgegebenen Datensätze zu durchlaufen, um entsprechende Vorgänge auszuführen. Der Cursor hat folgende Eigenschaften:
Erstellen eines Cursors Die Syntax zum Erstellen eines Cursors besteht aus vier Teilen:
Erstellen Sie eine Prozedur p1, die einen Cursor verwendet, um die ersten Studenteninformationen in der Studententabelle in der Testdatenbank zurückzugeben. Der Code sieht folgendermaßen aus: -- Prozedur definieren, Prozedur p1() erstellen beginnen Deklariere ID int; Deklarationsname varchar (20); Alter deklarieren int; - Cursor definieren, Cursornamen Cursor für Select-Anweisung deklarieren; Deklarieren Sie den MC-Cursor für „Select * from Student“; -- Öffnen Sie den Cursor, öffnen Sie den Cursornamen. offene MC; -- Datenabruf-Cursorname in Variablenname [, Variablenname] übernehmen; Hol' mc in ID, Name, Alter; - Ausgewählte ID, Name, Alter drucken; -- Schließen Sie den Cursor close mc; Ende; -- Rufe die Prozedur call p1() auf; Erstellen Sie eine Student2-Tabelle in der Testdatenbank, erstellen Sie eine Prozedur p2, verwenden Sie einen Cursor, um alle Studenteninformationen aus der Student-Tabelle zu extrahieren und sie in die Student2-Tabelle einzufügen. Der Code sieht folgendermaßen aus: -- Prozedur definieren, Prozedur p3() erstellen beginnen Deklariere ID int; Deklarationsname varchar (20); Alter deklarieren int; Deklarieren Sie die Flagge als Int-Standard 0. - Cursor definieren, Cursornamen Cursor für Select-Anweisung deklarieren; Deklarieren Sie den MC-Cursor für „Select * from Student“; Deklarieren Sie den Weiter-Handler für nicht gefundene Flags mit dem Wert 1; -- Öffnen Sie den Cursor, öffnen Sie den Cursornamen. offene MC; -- Datenabruf-Cursorname in Variablenname [, Variablenname] übernehmen; a:Schleife – Schleife zum Abrufen von Daten, mc in ID, Name, Alter; if flag=1 then -- triggert den Continue-Handler, wenn der Abruf fehlschlägt verlassen a;-- beenden Sie die Schleife Ende, wenn; -- Jede Zeile der extrahierten Daten durchlaufen und in die Tabelle „Student2“ einfügen, „insert into student2 values(id,name,age);“ Endschleife; -- Schließen Sie den Cursor close mc; Ende; -- Prozeduraufruf p3() aufrufen; -- Abfrage der Tabelle „student2“ select * from student2; ZusammenfassenDies ist das Ende dieses Artikels über Trigger und Cursor in MySQL. Weitere relevante MySQL-Trigger und -Cursor finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: JavaScript-Canvas zum Erstellen eines Rubbellos-Beispiels
>>: Zusammenfassung der CSS-Schwebeelementanalyse
Inhaltsverzeichnis Ein einfaches Komponentenbeisp...
Diese Datenbankabfrageanweisung ist eine von 50 D...
Inhaltsverzeichnis Vorwort Kerncode Datei zeigt e...
Das CSS-Positionsattribut gibt den Positionierung...
Dieser Artikel stellt kurz den Prozess der Einric...
Gehen Sie im Hive-Installationsverzeichnis in das...
Inhaltsverzeichnis JVM-Klassenlader Tomcat-Klasse...
Inhaltsverzeichnis Transaktionsisolationsebene Wa...
Inhaltsverzeichnis 1. Einleitung 2. Umschalten 1....
Wir müssen darauf achten, dass die Eigenschaften ...
Docker-Installation curl -fsSL https://get.docker...
Inhaltsverzeichnis Vorwort 1. for-Schleife 2. whi...
Vorwort Aus beruflichen Gründen musste ich kürzli...
Inhaltsverzeichnis Vorwort 1. Objekt.freeze() 2. ...
Dieser Artikel fasst die allgemeinen Befehle zur ...