《Oracle命令语法速查》【 CREATE TRIGGER 】
データベーストリガーを作成する
CREATE [ OR REPLACE ] TRIGGER [ スキーマ . ] トリガー名 →
→┬ BEFORE ────────┬→
│[ データ更新前に起動 ]│
├ AFTER ────────┤
│[ データ更新後に起動 ]│
└ INSTEAD OF ──────┘
[ DML 文発行時にトリガーを起動する(ビューのみ指定可) ]
→┬ (*1) ──────────────────────┬→
├┬ ddl_event───┬┬ ON ┬ [ スキーマ ] . SCHEMA ┬┘
│└ ← OR ────┘│ └ DATABASE ───────┘
└┬ database_event ┬┘
└ ← OR ────┘
→ [ WHEN ( 条件式 ) ] →
[ トリガー制約(トリガー起動条件)を指定する ]
→ pl/sql_block ;
[ 実行する PL/SQL 文を実装する ]
(*1)
→┬ INSERT ─────────┬→
│[ INSERT 文実行時に起動 ] │
├ DELETE ─────────┤
│[ DELETE 文実行時に起動 ] │
├ UPDATE [ OF ┬ 列名 ┬ ] ─┤
│ └ ← , ┘ │
│[ UPDATE 文実行時に起動 ] │
└ ← OR ──────────┘
→ ON ┬ [ スキーマ . ] 表名 ───────────────┬→
└ [ NESTED TABLE 列名 OF ] [ スキーマ . ] ビュー名 ┘
[ 起動対象となるオブジェクトを指定する ]
→ [ [ REFERENCING ┬ OLD [ AS ] old ───┬ ] ] →
├ NEW [ AS ] new ───┤
└ PARENT [ AS ] parent ┘
[ 相関名を指定する ]
→ [ FOR EACH ROW ] →
[ 行レベルのトリガーにする ]