トリガーのタイプ (PL/SQL)
データ・サーバーでは、PL/SQL コンテキスト内において行レベルとステートメント・レベルのトリガーがサポートされます。
行トリガー は、トリガー・イベントの影響を受ける各行につき、1 回作動します。 例えば、特定の表のトリガー・イベントとして削除操作を定義した場合に、単一の DELETE ステートメントによって 5 つの行をその表から削除すると、トリガーは 5 回、すなわち各行につき 1 回作動します。
ステートメント・トリガー は各ステートメントで 1 回のみ起動されます。 前述のサンプルを使用して説明すると、特定の表に対するトリガー・イベントとして削除を定義し、単一の DELETE ステートメントでその表から 5 行を削除する場合、トリガーは 1 回だけ起動されます。 ステートメント・トリガーの粒度は、BEFORE トリガーと INSTEAD OF トリガーでは指定できません。
トリガーのコード・ブロックは、各行がトリガーを起動するステートメントから影響を受ける前または後に実行されます。ただし INSTEAD OF トリガーは例外で、そのトリガーを起動するステートメントの対象である各行に影響を与える代わりにトリガーのコード・ブロックが実行されます。