通常、:old
を使用してトリガーで用語を使用します 古い値と:new
を参照するには 新しい値を参照します。
上記にリンクされているOracleドキュメントの例を次に示します
CREATE OR REPLACE TRIGGER Print_salary_changes
BEFORE DELETE OR INSERT OR UPDATE ON Emp_tab
FOR EACH ROW
WHEN (new.Empno > 0)
DECLARE
sal_diff number;
BEGIN
sal_diff := :new.sal - :old.sal;
dbms_output.put('Old salary: ' || :old.sal);
dbms_output.put(' New salary: ' || :new.sal);
dbms_output.put_line(' Difference ' || sal_diff);
END;
この例では、トリガーはBEFORE DELETE OR INSERT OR UPDATE
を起動します :old.sal
トリガーが発生する前の給与と:new.sal
が含まれます 新しい値が含まれます。