UPDATE TRIGGER
、OLDを使用できます 更新によって置き換えられている行データにアクセスするためのキーワード。 NEW キーワードを使用すると、成功した場合に古い行を置き換える受信行データにアクセスできます。
UPDATEの例 トリガーは次のとおりです:
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 ここ
作成されたトリガーのタイプに応じて、OLD およびNEW 行が利用できない場合があります:
トリガーを挿入
-
NEWへのアクセス 疑似行のみ。
UPDATE TRIGGER
-
NEWへのアクセス およびOLD疑似行
トリガーの削除
-
OLDへのアクセスのみ 疑似行
つまり、OLDはありません INSERTの行 トリガーし、NEWはありません DELETEの行 トリガー。
OPの質問
OPは実際のコードを提供しておらず、コメントで参照されているエラーメッセージ:
OPが誤ってINSERT TRIGGERを作成したことを示します UPDATE TRIGGERではありません 質問で示されたように。 INSERT トリガーにはOLDがありません 疑似テーブル。