2017-09-02 2 views
1

Dies ist mein Code im Moment:Wie verwenden Sie mehrere Ereignisse in einem SQL-Trigger?

DROP TRIGGER `backup`; 

DELIMITER $$ 
CREATE TRIGGER `backup` AFTER INSERT UPDATE DELETE 
    ON `warehouse` 
    FOR EACH ROW 
     BEGIN 

     END$$ 
DELIMITER ; 

Dies ist der Fehler, den ich erhalte:

enter image description here

ich meine Version von MariaDB geprüft. Es ist 10.1.21

Es funktioniert, wenn ich nur ein Ereignis verwenden, aber mit zwei oder drei es wirft diesen Fehler.

Insert Update trigger how to determine if insert or update

+0

Sie müssen drei getrennte Trigger für INSERT, UPDATE und DELETE gemacht –

+0

gibt es irgendeine Möglichkeit, ich könnte alles in einem tun? Ich habe ein paar Beispiele gefunden, die Syntax sieht wie folgt aus: – bobby

+0

Bitte geben Sie einen Link zu einem solchen Beispiel an. –

Antwort

2

In MySQL oder MariaDB jeder Auslöser müssen für genau ein Ereignis definiert werden. Sie können keinen Trigger definieren, der für mehrere Ereignisse funktioniert.

https://dev.mysql.com/doc/refman/5.7/en/create-trigger.html hat die Syntax:

trigger_event: { INSERT | UPDATE | DELETE } 

Diese Syntax Notation bedeutet das Ereignis ein von die drei Werte INSERT, UPDATE und DELETE sein muss. ein enum ist, was bedeutet, es nur einen Wert haben kann, nicht mehrere

EVENT_MANIPULATION enum('INSERT','UPDATE','DELETE') 

Der Ereignistyp:

Ein weiterer Hinweis ist, wenn wir DESCRIBE INFORMATION_SCHEMA.TRIGGERS gefunden.

Das Beispiel, mit dem Sie verknüpft haben, ist für Microsoft SQL Server, nicht für MySQL oder MariaDB.

Trotz der Tatsache, dass sowohl "Microsoft" als auch "MySQL" mit einer ähnlichen Silbe beginnen, sind dies zwei verschiedene Produkte mit unterschiedlichen Eigenschaften.

Verwandte Themen