In un UPDATE TRIGGER
, puoi usare il OLD parola chiave per accedere ai dati della riga che vengono sostituiti dall'aggiornamento. Il NEW la parola chiave consente di accedere ai dati della riga in entrata che sostituiranno la vecchia riga, in caso di esito positivo.
Un esempio di UPDATE il trigger è:
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 qui
A seconda del tipo di attivatore creato, il OLD e NEW le righe potrebbero non essere disponibili per te:
INSERIRE TRIGGER
- Accesso al
NEWsolo pseudo righe.
TRIGGER DI AGGIORNAMENTO
- Accesso al
NEWeOLDpseudorighe
ELIMINA TRIGGER
- Accesso solo al
OLDpseudorighe
cioè non c'è OLD riga su un INSERT trigger e nessun NEW riga su un DELETE trigger.
Domanda di OP
OP non ha fornito il codice effettivo e il messaggio di errore a cui si fa riferimento nei commenti:
indica che l'OP ha inavvertitamente creato un INSERT TRIGGER e non un UPDATE TRIGGER come indicato nella domanda. Un INSERT trigger non ha OLD pseudotabella.