0

準備されたトランザクションのコンテキストではサポートされていないNOTIFYコマンドを使用する関数トリガーを呼び出す既存のデータベースコード(トリガー)に問題があります。

私の質問は単純です:関数トリガーから、準備されたトランザクションのコンテキストにあることを検出する方法はありますか?

前もって感謝します。

4

1 に答える 1

1

まだトランザクションを実行していないため、準備されたトランザクションと2フェーズコミットを使用して現在のトランザクションがコミットされることを検出する方法はありPREPAREません。トランザクションは、トリガーが実行されるまで、2フェーズコミットの対象になることを認識していません。BEGIN TRANSACTION FOR TWO PHASE COMMITPostgreSQLは、あなた(架空の構文)またはそのようなものを必要としません。

max_prepared_transactions> 0をテストしてpg_settings、準備されたトランザクションが有効になっているかどうかを確認できますが、2PCが使用されるかどうかを知る方法はありません。

于 2013-01-22T08:18:24.713 に答える