Em um
UPDATE TRIGGER
, você pode usar o OLD palavra-chave para acessar os dados da linha que estão sendo substituídos pela atualização. O NEW A palavra-chave permite acessar os dados da linha de entrada que substituirão a linha antiga, se bem-sucedida. Um exemplo de um
UPDATE gatilho é: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 aqui
Dependendo do tipo de gatilho criado, o
OLD e NEW linhas podem não estar disponíveis para você:INSERIR GATILHO
- Acesso ao
NEWapenas pseudo linhas.
ATUALIZAR GATILHO
- Acesso ao
NEWeOLDpseudo linhas
EXCLUIR GATILHO
- Acesso apenas ao
OLDpseudo linhas
ou seja, não há
OLD linha em um INSERT gatilho e nenhum NEW linha em um DELETE acionar. Pergunta do OP
O OP não forneceu o código real e a mensagem de erro mencionada nos comentários:
indica que o OP criou inadvertidamente um
INSERT TRIGGER e não um UPDATE TRIGGER como foi indicado na pergunta. Um INSERT o gatilho não tem OLD pseudotabela.