トランザクションおよび例外 (PL/SQL)

トリガーは必ず、同じトランザクション (この中でトリガー・ステートメントが実行される) の一部として実行されます。

トリガー・コード・ブロック内で例外が発生しない場合、トリガー内のデータ操作言語 (DML) の結果は、トリガー・ステートメントが含まれるトランザクションがコミットされる場合にのみコミットされます。 トランザクションがロールバックされると、トリガー内の DML の結果もロールバックされます。

Db2® ロールバックは、アトミック・ブロック内で、または UNDO ハンドラーを使用することによってのみ行うことができます。 トリガー・ステートメント自体は、それをカプセル化しているトランザクションのロールバックをアプリケーションが強制しない限り、ロールバックされません。

処理できない例外がトリガー・コード・ブロック内で発生すると、呼び出しステートメントがロールバックされます。