すべてのプロダクト
Search
ドキュメントセンター

PolarDB:トランザクションと例外

最終更新日:Mar 29, 2026

トリガーは、常にその起動元の文と同じトランザクション内で実行されます。トリガーの効果がコミットされるかロールバックされるかは、トランザクションの結果およびトリガーコードブロック内の例外処理方法によって決まります。

例外がロールバック動作に与える影響

例外が発生しない場合

トリガーコードブロックが例外を発生させずに完了した場合、トリガーの DML 効果は囲むトランザクションに従います:

  • トランザクションがコミットされた場合、トリガーの DML 効果もコミットされます。

  • トランザクションがロールバックされた場合、トリガーの DML 効果もロールバックされます。

例外がキャッチされ、処理された場合

トリガーコードブロック内で例外が発生し、例外セクションによってキャッチされた場合:

  • トリガー内の DML コマンドは、例外が処理されたとしても引き続きロールバックされます

  • 起動元の文自体は、アプリケーションが囲むトランザクションのロールバックを明示的に強制しない限り、ロールバックされません

例外が処理されない場合

トリガーコードブロック内で発生した例外が処理されない場合、囲むトランザクションは中止され、ロールバックされます。このとき、トリガーの DML コマンドおよび起動元の文の両方がロールバックされます。