[pgsql-jp: 36111] psqlメタコマンドとトランザクション

Toshihiro Kurai tkurai @ taiyo-st.co.jp
2005年 10月 12日 (水) 15:31:59 JST


倉井と申します。

psqlメタコマンドとトランザクションとの関係について質問します。

本来はトランザクションを開始(BEGIN;)してから
UPDATE文のスクリプトファイルを「\i ファイル名」で
実行しようとしましたが、手違いから「BEGIN」だけ
入力後Enterキー入力状態(;を入力していないのでSQL文が完結していない)で
上記のメタコマンドを実行したところ結果が反映されてしまいました。

メタコマンドの実行は別物として動作するのでしょうか?
でも「;」を入力しトランザクションを開始すると
スクリプトファイル中のUPDATE文は
トランザクションの制御を受けています・・・。

なぜなのでしょうか?

ちなみに下記のように実行しました。

hoge=> BEGIN        <= (「;」未入力)
hoge-> \i hoga.sql
UPDATE 1
UPDATE 1
UPDATE 1
hoge-> SELECT * FROM hoga;
ERROR:  parser error at or near "SELECT" at character 7

※でもスクリプトファイルのUPDATE文は反映されてしまう。



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