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
がありません 疑似テーブル。