MySQL: Getriggerte Operation abrufen

raikkonentk

Mitglied
Hallo,

ich möchte bei einem Trigger der UPDATE, INSERT, DELETE abfängt,
die jeweilige action in eine andere Log-Tabelle schreiben.

Das Problem dabei ist, dass ich bisher nicht rausgefunden haben wie ich mir die Triggeroperation anzeigen lassen kann oder ob das in mysql 5 überhaupt funktioniert.

Bei PostgreSQL gibt es dafür die Variable TG_OP.
Deren Pendant in MySQL oder eine alternative Lösung suche ich, damit ich nicht drei Trigger mit der selben Funktion schreiben muss.

Vielen Dank.
 
Danke für die schnelle Anwort, aber genau das wollte ich eben verhindern, weil ich dann bei späteren Änderungen an die drei Stellen denken muss :)
 
MySQL Reference hat gesagt.:
Mit den Schlüsselwörtern OLD und NEW können Sie auf Spalten zugreifen, die von einem Trigger betroffen sind. (Die Groß- und Kleinschreibung spielt für OLD und NEW keine Rolle.) In einem INSERT-Trigger kann nur NEW.col_name benutzt werden, da keine alte Zeile vorhanden ist, und in einem DELETE-Trigger nur OLD.col_name, da keine neue Zeile vorhanden ist. In einem UPDATE-Trigger können sowohl OLD.col_name für den Verweis auf Tabellenzeilen vor der Änderung als auch NEW.col_name für einen Verweis auf die geänderten Zeilen verwendet werden.
Das heißt, du müsstest prüfen, was von denen gesetzt ist und weißt dann auch welche Aktion ausgeführt wurde.
Es wäre aber trotzdem besser, wenn du jeweils einen Trigger schreiben würdest, da du so übersichtlicheren und wartbareren Code erzeugst
 
Zurück