トリガーコードブロックでは、いくつかの特殊変数を使用できます。

NEW

NEW は、行レベルのトリガーでの挿入および更新操作における、テーブルの新規行を表す疑似レコード名です。 この変数は、文レベルのトリガーまたは行レベルのトリガーの削除操作には適用されません。

この変数は、 :NEW.column の形式で使用されます。 :NEW.column では、 column はトリガーが定義されたテーブルの列の名前です。

before 行レベルトリガーで使用した場合、 :NEW.column の初期の内容は、挿入される新しい行内、または元の行を置き換える新しい行内にある名前付き列の値です。 after 行レベルトリガーで使用した場合、影響を受ける行でアクションが発生したため、この値はテーブルに格納されています。

トリガーコードブロックでは、 :NEW.column を他の変数と同じように使用できます。 before 行レベルトリガーのコードブロックで値が:NEW.column に割り当てられている場合、 割り当てられた値は、新しく挿入または更新された行で使用されます。

OLD

OLD は、行レベルのトリガーでの更新および削除操作における、テーブルの元の行を表す疑似レコード名です。 この変数は、文レベルのトリガーまたは行レベルのトリガーの挿入操作には適用されません。

この変数は、 :OLD.column の形式で使用されます。 :OLD.column では、 column はトリガーが定義されたテーブルの列の名前です。

before 行レベルトリガーで使用した場合、 :OLD.column の初期の内容は、削除される行内、または新しい行によって置き換えられる元の行内にある名前付き列の値です。 after 行レベルのトリガーで使用した場合、影響を受ける行でアクションが発生したため、この値はもはやテーブルに格納されていません。

トリガーコードブロックでは、 :OLD.column を他の変数と同じように使用できます。 :OLD.column に値を割り当てても、トリガーのアクションには影響しません。

INSERTING

INSERTING は、挿入操作がトリガーを起動した場合に TRUE を返す条件式です。 それ以外の場合は FALSE を返します。

UPDATING

UPDATING は、更新操作がトリガーを起動した場合に TRUE を返す条件式です。 それ以外の場合は FALSE を返します。

DELETING

DELETING は、削除操作がトリガーを起動した場合に TRUE を返す条件式です。 それ以外の場合は FALSE を返します。