V UPDATE TRIGGER
, můžete použít OLD klíčové slovo pro přístup k datům řádku, která jsou nahrazena aktualizací. NEW klíčové slovo umožňuje přístup k datům příchozího řádku, která v případě úspěchu nahradí starý řádek.
Příklad UPDATE spouštěč je:
CREATE TRIGGER upd_check AFTER UPDATE ON SomeTable
FOR EACH ROW
BEGIN
IF (OLD.LastChangedBy <> NEW.LastChangedBy) THEN
INSERT INTO AuditSomeTable(ID, LastChangedBy)
VALUES (OLD.ID, OLD.LastChangedBy);
END IF;
END;
SQLFiddle zde
V závislosti na typu vytvořeného spouštěče OLD a NEW řádky vám nemusí být dostupné:
VLOŽTE SPUŠTĚČ
- Přístup k
NEWpouze pseudo řádky.
AKTUALIZOVAT TRIGGER
- Přístup k
NEWaOLDpseudo řádky
SMAZAT SPUŠTĚČ
- Přístup pouze ke
OLDpseudo řádky
tj. neexistuje žádný OLD řádek na INSERT spouštěč a žádné NEW řádek na DELETE spoušť.
Otázka OP
OP neposkytlo skutečný kód a chybovou zprávu uvedenou v komentářích:
označuje, že operační systém neúmyslně vytvořil INSERT TRIGGER a nikoli UPDATE TRIGGER jak bylo uvedeno v dotazu. INSERT spouštěč nemá OLD pseudo tabulka.