Heim  >  Artikel  >  Datenbank  >  Wie gehe ich mit identischer Triggerlogik für Einfüge- und Aktualisierungsereignisse in MySQL um?

Wie gehe ich mit identischer Triggerlogik für Einfüge- und Aktualisierungsereignisse in MySQL um?

DDD
DDDOriginal
2024-11-12 16:54:021022Durchsuche

How to Handle Identical Trigger Logic for Insert and Update Events in MySQL?

MySQL-Trigger für Einfüge- und Aktualisierungsereignisse

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!

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