[pgsql-jp: 35587] Re: libpqxx ライブラリを使用したトランザクション制御について

吉田 茂雄 yoshida-s @ t-okura.kdg.co.jp
2005年 6月 24日 (金) 18:59:07 JST


こんにちは、吉田です。

> 下記のようなループ中で複数のSQLを実行するようなC++のプロ
> グラムにおいて、途中でsql_error例外が発生してしまうと、
> それまでのSQLの実行がすべてabortされてしまいます。
> 
> 例外を発生したSQLを実行してもトランザクションがabortされ
> ずに、正常に通ったSQLの実行結果はテーブルに反映させるよ
> うにするにはどのようにすれば良いのでしょうか?ループ内にwork
> インスタンスの生成、破棄のロジックを入れて、ループのたび
> にworkインスタンスを生成しなければならないのでしょうか?

トランザクション全てをabortせずに、ということであれば、
SAVEPOINTを使用して部分的ロールバックで対応したらどうでしょうか?




pgsql-jp メーリングリストの案内