Heim  >  Artikel  >  Datenbank  >  Einführung in MySQL-Trigger und wie man Trigger erstellt und löscht

Einführung in MySQL-Trigger und wie man Trigger erstellt und löscht

巴扎黑
巴扎黑Original
2017-05-19 15:27:443097Durchsuche

Was ist ein MySQL-Trigger?

Erfordert MySQL 5. Unterstützung für Trigger wurde in MySQL 5 hinzugefügt. Daher gilt der Inhalt dieses Kapitels für MySQL 5 oder spätere Versionen.

MySQL-Anweisungen werden bei Bedarf ausgeführt, ebenso wie gespeicherte Prozeduren. Was aber, wenn Sie möchten, dass eine bestimmte Anweisung (oder einige Anweisungen) automatisch ausgeführt werden, wenn ein Ereignis eintritt? Beispiel:

1. Überprüfen Sie beim Hinzufügen eines Kunden zu einer Datenbanktabelle, ob das Telefonnummernformat korrekt ist und ob die Landesabkürzung großgeschrieben wird.

2 Wenn ein Produkt hinzugefügt wird, wird die bestellte Menge von der Lagerbestandsmenge abgezogen.

3 Immer wenn eine Zeile gelöscht wird, wird eine Kopie in einer Archivtabelle gespeichert.

Allen diesen Beispielen ist gemeinsam, dass sie alle automatisch reagieren müssen, wenn sich eine bestimmte Tabelle ändert. Das ist im wahrsten Sinne des Wortes der Auslöser. Ein Auslöser ist eine MySQL-Anweisung (oder eine Gruppe von Anweisungen zwischen den BEGIN- und END-Anweisungen), die MySQL automatisch als Reaktion auf eine der folgenden Anweisungen ausführt:

1.DELETE;2. EINFÜGEN;

3.UPDATE.

Andere MySQL-Anweisungen unterstützen keine Trigger.


MySQL-Trigger erstellen

Beim Erstellen eines Triggers müssen 4 Informationen angegeben werden:

1. Der eindeutige Triggername

2. Die mit dem Trigger verknüpfte Aktivität. ;

Wann wird der Trigger ausgeführt (vor oder nach der Verarbeitung).

Triggernamen pro Datenbank eindeutig halten In MySQL 5 müssen Triggernamen in jeder Tabelle, aber nicht in jeder Datenbank eindeutig sein. Das bedeutet, dass zwei Tabellen in derselben Datenbank Trigger mit demselben Namen haben können. Dies ist in anderen DBMS nicht zulässig, in denen jeder Datenbank-Triggername eindeutig sein muss, und zukünftige Versionen von MySQL werden die Benennungsregeln wahrscheinlich strenger machen. Daher ist es jetzt am besten, innerhalb des Datenbankbereichs eindeutige Triggernamen zu verwenden.

Trigger werden mit der CREATE TRIGGER-Anweisung erstellt. Hier ist ein einfaches Beispiel:

Eingabe:

Analyse: CREATE TRIGGER wird verwendet, um einen neuen Trigger mit dem Namen newproduct zu erstellen. Trigger können vor oder nach dem Ausführen einer Operation ausgeführt werden. Hier wird AFTER INSERT angegeben, sodass dieser Trigger ausgeführt wird, nachdem die INSERT-Anweisung erfolgreich ausgeführt wurde. Dieser Trigger gibt auch FOR EACH ROW an, sodass der Code für jede eingefügte Zeile ausgeführt wird. In diesem Beispiel erscheint der Text „Produkt hinzugefügt“ einmal für jede eingefügte Zeile. Um diesen Auslöser zu testen, verwenden Sie eine INSERT-Anweisung, um eine oder mehrere Zeilen zu Produkten hinzuzufügen

Für jede erfolgreiche Einfügung wird eine Meldung „Produkt hinzugefügt“ angezeigt.
create trigger newproduct after insert on proucts for each row select 'product added';

Nur ​​Tabellen unterstützen Trigger, Ansichten unterstützen sie nicht (temporäre Tabellen unterstützen sie auch nicht).

Trigger werden pro Ereignis und Tabelle definiert und es ist jeweils nur ein Trigger pro Ereignis und Tabelle zulässig. Daher unterstützt jede Tabelle bis zu 6 Trigger (vor und nach jedem INSERT , UPDATE und DELETE ). Ein einzelner Trigger kann nicht mehreren Ereignissen oder mehreren Tabellen zugeordnet werden. Wenn Sie also einen Trigger benötigen, der bei INSERT- und UPDATE-Vorgängen ausgeführt wird, sollten Sie

zwei Trigger definieren.

Trigger-Fehler Wenn der BEFORE-Trigger fehlschlägt, führt MySQL den angeforderten Vorgang nicht aus. Wenn außerdem der BEFORE-Trigger oder die Anweisung selbst fehlschlägt, führt MySQL den AFTER-Trigger (falls vorhanden) nicht aus.

MySQL-Trigger löschen

Jetzt sollte die Syntax zum Löschen eines Triggers klar sein. Um einen Trigger zu löschen, verwenden Sie die DROP TRIGGER-Anweisung wie folgt: Eingabe:

Analyse: Trigger können nicht aktualisiert oder überschrieben werden. Um einen Trigger zu ändern, muss er gelöscht und anschließend neu erstellt werden.

[Verwandte Empfehlungen]
drop trigger newproduct ;

1.

MySQL-freies Video-Tutorial

2. MySQL-Zeichensatz und Korrekturlesereihenfolge-Nutzung

3. Einführung in den MySQL-Zeichensatz und die Sortierreihenfolge

4.MySQL-Transaktionsdetaillierte Erläuterung der Verwendung von Aufbewahrungspunkten und des Änderns des Standard-Commit-Verhaltens

5. MySQL-Transaktions-ROLLBACK, detaillierte Erläuterung der COMMIT-Nutzung

Das obige ist der detaillierte Inhalt vonEinführung in MySQL-Trigger und wie man Trigger erstellt und löscht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn