Dieser Artikel veranschaulicht anhand von Beispielen die grundlegende Verwendung von MySQL-Triggern. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: 1. MySQL-Trigger erstellen: 1. Syntax zum Erstellen von MySQL-Triggern:ERSTELLEN [DEFINER = { 'Benutzer' | AKTUELLER_BENUTZER }] TRIGGER Auslösername Auslösezeit Auslöseereignis ON Tabellenname FÜR JEDE REIHE [Auslösereihenfolge] Auslöser_Body 2. Erklärung der Schlüsselwörter in der MySQL-Erstellungssyntax:
3. ALT, NEU im Inhalt der Trigger-Ausführungsanweisung (trigger_body): In trigger_body können wir NEW verwenden, um anzugeben, dass neue Zeilen eingefügt werden sollen (entspricht
Da 4. MySQL-Trennzeichen (DELIMITER): MySQL verwendet standardmäßig ";" als Trennzeichen und die SQL-Anweisung wird übermittelt, wenn sie auf ";" stößt. Unser Trigger kann mehrere ";"-Zeichen enthalten. Um zu verhindern, dass die Trigger-Erstellungsanweisung vorzeitig übermittelt wird, müssen wir das MySQL-Trennzeichen vorübergehend ändern und es nach der Erstellung wieder zurückändern. Mit TRENNUNGSZEICHEN $ ... --Trigger-Erstellungsanweisung; $ --Senden Sie die Erstellungsanweisung; TRENNUNGSZEICHEN ; 2. Erweiterte MySQL-Trigger-Erstellung: 1. Verwenden von Variablen in MySQL-Triggern: In MySQL-Triggern werden Variablen mit '@' vorangestellt und können direkt ohne Definition verwendet werden: --Variablen-Direktzuweisungssatz @num=999; -- Verwenden Sie die Daten aus der Select-Anweisung, um einen Wert zuzuweisen. Klammern sind erforderlich: setze @name =(Name aus Tabelle auswählen); 2. Verwenden Sie die if-Anweisung im MySQL-Trigger, um eine bedingte Beurteilung vorzunehmen:-- Einfache if-Anweisung: setze Geschlecht = if (new.sex=1, 'männlich', 'weiblich'); --Mehrere bedingte if-Anweisungen: wenn old.type=1 dann Tabelle aktualisieren ...; sonstwenn alt.Typ=2 dann Tabelle aktualisieren ...; Ende wenn; 3. MySQL-Ansichtstrigger: Sie können die Auslöser mit „ - Zeigen Sie die Auslöser über die Tabelle information_schema.triggers an: Wählen Sie * aus information_schema.triggers; --mysql zeigt Trigger zum Anzeigen der aktuellen Datenbank an; -- MySQL zeigt Trigger von aiezu für die angegebene Datenbank „aiezu“ an; 4. MySQL-Löschtrigger: 1. Sie können den Trigger mit Drop Trigger löschen:Auslöser Auslösername löschen; 2. Prüfen Sie vor dem Löschen, ob der Trigger vorhanden ist:Trigger löschen, falls vorhanden, Triggername 5. Beispiele für die Verwendung von MSSQL-Triggern: 1. MySQL-Trigger Insert löst die Aktualisierung derselben Tabelle aus: Unten haben wir eine Tabelle „ Erstellen Sie eine Testtabelle und lösen Sie Folgendes aus: - Erstellen Sie eine Testtabelle, löschen Sie die Tabelle, falls tmp1 vorhanden ist. Erstellen Sie Tabelle tmp1 (n1 int, n2 int); -- Trigger erstellen DELIMITER $ Trigger löschen, falls vorhanden tmp1_insert$ Trigger tmp1_insert erstellen vor dem Einfügen auf tmp1 für jede Zeile beginnen setze neu.n2 = neu.n1*5; Ende$ TRENNUNGSZEICHEN ; Testen Sie den Effekt der Aktualisierung des Triggers: mysql> tmp1(n1)-Werte einfügen(18); Abfrage OK, 1 Zeile betroffen (0,01 Sek.) mysql> tmp1(n1)-Werte einfügen(99); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> wähle * aus tmp1; +------+------+ | +------+------+ | 18 | 90 | | 99 | 495 | +------+------+ 2 Zeilen im Satz (0,00 Sek.) 2. MySQL-Trigger Update löst die Aktualisierung einer anderen Tabelle aus: Unten sind zwei Tabellen, tmp1 und tmp2, die beide denselben Erstellen Sie eine Testtabelle und lösen Sie Folgendes aus: - Erstellen Sie eine Testtabelle und fügen Sie die Testdaten-Drop-Tabelle ein, falls vorhanden: tmp1; Tabelle löschen, falls tmp2 vorhanden ist; Erstellen Sie Tabelle tmp1 (ID int, Name varchar(128)) Standard-Zeichensatz='utf8'; Erstellen Sie Tabelle tmp2 (fid int, Name varchar(128)) Standard-Zeichensatz='utf8'; in tmp1-Werte einfügen (1, „E-Mail“); in tmp2-Werte einfügen (1, „E-Mail“); -- Trigger erstellen DELIMITER $ Trigger löschen, falls vorhanden: tmp1_update$ Trigger tmp1_update erstellen nach dem Update auf tmp1 für jede Zeile beginnen Aktualisiere tmp2, setze Name=new.name, wobei fid=new.id; Ende$ TRENNUNGSZEICHEN ; Testen Sie den Effekt der Aktualisierung des Triggers: mysql> wähle * aus tmp1; +------+---------+ | Ich würde | Name | +------+---------+ | 1 | Liebe Grüße, E-Stamm | +------+---------+ 1 Zeile im Satz (0,00 Sek.) mysql> wähle * aus tmp2; +------+---------+ | Name | +------+---------+ | 1 | Liebe Grüße, E-Stamm | +------+---------+ 1 Zeile im Satz (0,00 Sek.) mysql> update tmp1 set name='aiezu.com' wobei id=1; Abfrage OK, 1 Zeile betroffen (0,00 Sek.) Übereinstimmende Zeilen: 1 Geändert: 1 Warnungen: 0 mysql> wähle * aus tmp1; +------+----------+ | Ich würde | Name | +------+----------+ | 1 | aiezu.com | +------+----------+ 1 Zeile im Satz (0,00 Sek.) mysql> wähle * aus tmp2; +------+----------+ | Name | +------+----------+ | 1 | aiezu.com | +------+----------+ 1 Zeile im Satz (0,00 Sek.) 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:
|
<<: Aufbauprinzip des Nexus-Privatservers und Tutorial-Analyse
In diesem Artikel wird die Installations- und Kon...
1. Linux-Installation (Root-Benutzerbetrieb) 1. I...
1. Die Verwendung der oder Syntax in MySQL und di...
Die Grafikkarte meines Computers ist eine Nvidia-...
Was ist Pip pip ist ein Python-Paketverwaltungsto...
Inhaltsverzeichnis Linux-Umgebungsvariablen und P...
Das Erscheinungsbild einer Webseite hängt maßgebl...
Inhaltsverzeichnis Vorwort Modifikatoren des V-Mo...
Viele Konzepte im UI-Design mögen in der Formulie...
Wenn Komponenten detaillierter werden, treten Sit...
Inhaltsverzeichnis Vorwort 👀 Beginnen Sie mit der...
1. MySql-Architektur Bevor wir die Speicher-Engin...
MySQL-Vollsicherung 1. Aktivieren Sie das Binärpr...
Inhaltsverzeichnis Prometheus überwacht MySQL übe...
Vorwort InnoDB speichert Daten in Tablespaces. In...