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
NEW
pouze pseudo řádky.
AKTUALIZOVAT TRIGGER
- Přístup k
NEW
aOLD
pseudo řádky
SMAZAT SPUŠTĚČ
- Přístup pouze ke
OLD
pseudo řá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.