2016-12-20 13 views
0

psqlで.sqlファイルを実行しようとしています。私は以下のクエリ\copy table name from .dumbを書き込んだ.sqlファイルを内部で実行します。したがって、コマンドが失敗すると、デフォルトでコミット/ロールバックを処理します。または私たちはそれを世話する必要があります。" copy"コマンドはpostgresのコミットとロールバックを処理しますか?

+0

あなたのQを編集してください。あなたはsqlファイルか '\ copy table from file'を実行しようとしていますか? –

答えて

0

\copyは、トランザクションが中止されます失敗した場合、ここでの例です:

t=# \! cat s07 
create table trans(i int); 
copy s07 from '/no such file'; 
t=# begin; 
BEGIN 
t=# \i s07 
CREATE TABLE 
psql:s07:2: ERROR: could not open file "/no such file" for reading: No such file or directory 
t=# select * from trans; 
ERROR: current transaction is aborted, commands ignored until end of transaction block 
t=# end; 
ROLLBACK 
+0

ありがとう,,,それで、手動で処理する必要はありません。 – Shashi

+0

どのように手動でコミットを処理しますか? –

+0

コミットの動作は何ですか? – Shashi

0

すべては、あなたが実行しているPGのバージョンに依存します。 psqlのデフォルトはautocommit onです。そして、新しいバージョンでは、それをオフにすることはできません。したがって、成功した手動で発行されたCOPYまたは\ copyコマンドがすべてすぐにコミットされます。

関連する問題