In MySQL ist es nicht möglich, einen einzelnen Trigger zu erstellen, der sowohl für Einfügungs- als auch für Aktualisierungsereignisse in einer Tabelle ausgelöst wird. Daher müssen Sie zwei separate Auslöser erstellen, einen für jedes Ereignis.
Wenn der Auslösercode jedoch für Einfüge- und Aktualisierungsereignisse derselbe ist, können Sie den gemeinsamen Code in eine gespeicherte Prozedur verschieben und Lassen Sie stattdessen die Trigger die Prozedur aufrufen. Mit diesem Ansatz können Sie vermeiden, dass derselbe Code in mehreren Triggern wiederholt wird.
Hier ist ein Beispiel, wie Sie dies tun können:
Erstellen Sie die gespeicherte Prozedur:
CREATE PROCEDURE common_trigger_code() BEGIN -- Insert or update some data... END //
Erstellen Sie den Einfüge-Trigger:
CREATE TRIGGER insert_trigger AFTER INSERT ON `table` FOR EACH ROW CALL common_trigger_code();
Erstellen Sie den Update-Trigger:
CREATE TRIGGER update_trigger AFTER UPDATE ON `table` FOR EACH ROW CALL common_trigger_code();
Diese Lösung stellt das sicher Der gemeinsame Code wird nur einmal geschrieben und kann in Zukunft problemlos aktualisiert werden.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit identischer Triggerlogik für Einfüge- und Aktualisierungsereignisse in MySQL um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!