1. Trigger-Einführung1. Was ist ein Auslöser?Ein Trigger ist ein mit einer Tabelle verknüpftes Datenbankobjekt, das ausgelöst wird, wenn die definierten Bedingungen erfüllt sind, und die im Trigger definierte Anweisungsgruppe ausführt. 2. Eigenschaften von Auslösern
Das heißt, ein Vorgang wird durch ein Ereignis ausgelöst, zu dem Hinweis: ! ! Die Verwendung von Triggern sollte so wenig wie möglich erfolgen, es wird jedoch nicht empfohlen. Angenommen, der Trigger benötigt bei jeder Auslösung 1 Sekunde Verwenden Sie Trigger so wenig wie möglich, da sie in jedem Fall sehr ressourcenintensiv sind. Wenn Sie sie verwenden, gehen Sie mit Vorsicht vor und stellen Sie sicher, dass sie sehr effizient sind: Trigger gelten für jede Zeile. Denken Sie daran, Trigger nicht für Tabellen zu verwenden, die häufig hinzugefügt, gelöscht und geändert werden, da sie sehr ressourcenintensiv sind. 2. Erstellen Sie einen TriggerERSTELLEN [DEFINER = { Benutzer | AKTUELLER_BENUTZER }] TRIGGER Auslösername Auslösezeit Auslöseereignis ON tbl_name FÜR JEDE ZEILE [Auslösereihenfolge] Auslöser_Body trigger_time: { VORHER | NACHHER } trigger_event: { EINFÜGEN | AKTUALISIEREN | LÖSCHEN } trigger_order: { FOLGT | GEHT VORAUS } other_trigger_name
1. Erstellen Sie einen Trigger mit nur einer Ausführungsanweisung
Beispiel 1: Erstellen Sie einen Trigger mit dem Namen trig1. Sobald eine Einfügeaktion in der Arbeitstabelle ausgeführt wird, wird die aktuelle Zeit automatisch in die Zeittabelle eingefügt. mysql> TRIGGER ERSTELLEN trig1 NACH EINFÜGEN -> ON Arbeit für jede Zeile -> IN Zeitwerte einfügen (JETZT()); 2. Erstellen Sie einen Trigger mit mehreren Ausführungsanweisungen
Beispiel 2: Definieren Sie einen Trigger, der die Anweisungen in mysql> TRENNUNGSZEICHEN || mysql> TRIGGER TRIG2 ERSTELLEN VOR DEM LÖSCHEN -> ON Arbeit für jede Zeile -> BEGIN -> IN Zeitwerte einfügen (JETZT()); -> IN Zeitwerte einfügen (JETZT()); -> ENDE|| mysql> TRENNUNGSZEICHEN ; 3. Detaillierte Erklärung von NEU und ALT ① ② In einem ③In einem Anwendung:
Darüber hinaus ist Beispiel 3: mysql> CREATE TABLE-Konto (acct_num INT, Betrag DECIMAL (10,2)); mysql> INSERT INTO Konto WERTE(137,14,98),(141,1937,50),(97,-100,00); mysql> Trennzeichen $$ mysql> CREATE TRIGGER upd_check VOR UPDATE AUF Konto -> FÜR JEDE ZEILE -> BEGIN -> WENN NEUER.Betrag < 0 DANN -> SETZEN SIE NEU.Betrag = 0; -> SONST WENN NEU.Betrag > 100 DANN -> SETZEN SIE NEU.Betrag = 100; -> ENDE, WENN; -> ENDE$$ mysql> Trennzeichen; mysql> Konto aktualisieren, Betrag festlegen=-10, wobei acct_num=137; mysql> wähle * vom Konto aus; +----------+---------+ | Kontonummer | Betrag | +----------+---------+ | 137 | 0,00 | | 141 | 1937,50 | | 97 | -100,00 | +----------+---------+ mysql> Konto aktualisieren, Betrag=200 festlegen, wobei acct_num=137; mysql> wähle * vom Konto aus; +----------+---------+ | Kontonummer | Betrag | +----------+---------+ | 137 | 100,00 | | 141 | 1937,50 | | 97 | -100,00 | +----------+---------+ 3. Auslöser anzeigen1. SHOW TRIGGERS-Anweisung zum Anzeigen von Triggerinformationen
Als Ergebnis werden Basisinformationen aller Trigger angezeigt, eine Abfrage des angegebenen Triggers ist nicht möglich. 2. Triggerinformationen in der Tabelle information_schema.triggers anzeigen
Als Ergebnis werden Detailinformationen zu allen Triggern angezeigt, gleichzeitig können mit dieser Methode Detailinformationen zu einem bestimmten Trigger abgefragt werden. mysql> wähle * aus information_schema.triggers -> wobei trigger_name='upd_check'\G; Tipps: Alle Triggerinformationen werden in der 4. Trigger löschen
Nach dem Löschen des Triggers überprüfen Sie ihn am besten noch einmal mit der oben beschriebenen Methode, gleichzeitig können Sie mit Tipps: Um unerwartete Vorgänge zu vermeiden, ist es wichtig , einen Trigger zu löschen, wenn er nicht mehr benötigt wird. Dies ist das Ende dieses Artikels über die Verwendung von Das könnte Sie auch interessieren:
|
<<: Fähigkeiten zur Seiten-Refaktorierung - Inhalt
>>: Detaillierte Erklärung des Unterschieds zwischen Flex und Inline-Flex in CSS
Die Kapselung und Verwendung der Vue-Komponente z...
Inhaltsverzeichnis 1. Hintergrund 2. Verifizierun...
npm deinstallieren sudo npm deinstallieren npm -g...
Entwicklungshintergrund: Ich arbeite derzeit an e...
Werfen wir zunächst einen Blick auf die allgemein...
Dieser Artikel veranschaulicht anhand von Beispie...
Inhaltsverzeichnis 1. Bereiten Sie das Springboot...
Vorwort In Bezug auf das Layout ist Gobang viel e...
1. Erstellen Sie zunächst eine Datei hello-world....
1. Embed ist illegal Das <embed>-Tag ist ein...
Inhaltsverzeichnis Fall Kontextwechsel-Overhead? ...
1. Ändern Sie die Docker-Konfigurationsdatei und ...
Inhaltsverzeichnis Warum brauchen wir eine Materi...
Inhaltsverzeichnis 1. Komponentenorganisation 2. ...
Es gibt zwei Arten von Festplatten in Linux: gemo...