[pgsql-jp: 29711] Re: トランザクションエラーについて。
T.Suzuki
t_suzuki @ kenwood-eng.co.jp
2003年 4月 24日 (木) 12:07:01 JST
鈴木と申します。
> 不正なSQLを実行し、エラーが発生した場合は
> そのSQLは実行されないわけですが、
> その後にSELECT等の別のSQLを実行した場合も、エラーになるのでしょうか。
>
> BEGIN発行後、
> SQLエラーが発生しCOMMITされていない場合、
>
> ・エラーSQL
> ・次のSQL
>
> がトランザクションブロックとなるということでしょうか。
> また、エラー時は暗黙的にロールバックを行ってくれている訳ではないのでしょう
> か。
トランザクション中(Begin後)に、エラーSQLが実行された場合、
そのトランザクションはアボートします。
アボート時に、トランザクションは強制的にロールバックされます。
> この辺は書籍等で調べないといけないですね…
マニュアルと過去ログを参照してみると、同様の話題がありますよ。
書籍と合わせてどうぞ。
参考:
・過去ログ
http://ml.postgresql.jp/pipermail/pgsql-jp/index.html
http://ml.postgresql.jp/pipermail/pgsql-jp/2003-April/004679.html
・PostgreSQLのマニュアル - sql-begin.html
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/sql-begin.html
-----------------------------------------
鈴木 徹 (SUZUKI Toru)
KENWOOD ENGINEERING CORPORATION
E-mail:t_suzuki @ kenwood-eng.co.jp
-----------------------------------------
pgsql-jp メーリングリストの案内