トリガー(pl / PGsqlAFTER INSERT
で記述された関数)は、元の挿入とは別のトランザクションで起動しますか?
私が心配しているのは、トリガーが何らかの例外を経験するかどうかです。
元のインサートに影響を与えることなく、トリガーをロールバックできますか?
トリガー(pl / PGsqlAFTER INSERT
で記述された関数)は、元の挿入とは別のトランザクションで起動しますか?
私が心配しているのは、トリガーが何らかの例外を経験するかどうかです。
元のインサートに影響を与えることなく、トリガーをロールバックできますか?
すべてのPostgreSQLトリガーは、それらをトリガーしたトランザクションと同じトランザクションで実行されます。
編集:LISTEN
+NOTIFY
を使用して、トリガーからトランザクションの外部で実行されるコードにメッセージを送信することもできます。その場合、メッセージはコミットが成功した時点でのみ配信されます。リスナーのエラーは、トリガーとなるトランザクションをロールバックしません。
トリガープロシージャは、関連するトリガーイベントと同じトランザクションで実行されます。ただし、トリガー手順の効果は個別にロールバックできます。
afterトリガーに 例外処理を追加する必要があります。