W UPDATE TRIGGER
, możesz użyć OLD słowo kluczowe, aby uzyskać dostęp do danych wiersza, które są zastępowane przez aktualizację. NEW słowo kluczowe umożliwia dostęp do przychodzących danych wierszy, które zastąpią stary wiersz, jeśli się powiedzie.
Przykład UPDATE wyzwalacz to:
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 tutaj
W zależności od typu utworzonego wyzwalacza, OLD i NEW wiersze mogą być dla Ciebie niedostępne:
WSTAW SPUST
- Dostęp do
NEWtylko pseudo wiersze.
AKTUALIZUJ AKTUALIZACJĘ
- Dostęp do
NEWiOLDpseudo rzędy
USUŃ SPUST
- Dostęp tylko do
OLDpseudo rzędy
tzn. nie ma OLD wiersz na INSERT wyzwalacz i brak NEW wiersz na DELETE wyzwalacz.
Pytanie OP
OP nie podał rzeczywistego kodu i komunikatu o błędzie, o którym mowa w komentarzach:
wskazuje, że OP nieumyślnie utworzył INSERT TRIGGER a nie UPDATE TRIGGER jak wskazano w pytaniu. INSERT wyzwalacz nie ma OLD pseudotabela.