ファイル実行時のPostgreSQL終了ステータス


16

単一のSQLコマンドでPostgreSQLを実行すると、予想どおりエラーコードが返されます。

% psql -c "SELECT * FROM AWDASDASDASDAS" my_db
ERROR:  relation "awdasdasdasdas" does not exist
LINE 1: SELECT * FROM AWDASDASDASDAS
% echo $?
1

しかし、ファイルを実行すると、エラーは抑制されます。

% psql -f test.sql my_db
psql:test.sql:1: ERROR:  relation "awdasdasdasdas" does not exist
LINE 1: SELECT * FROM AWDASDASDASDAS
% echo $?
0

これらのエラーを取り戻す方法はありますか?

回答:


12

これをSQLファイルの最初の行に追加すると、うまくいきます。

\set ON_ERROR_STOP 1

新しいコメント(ありがとう!)は、次の解決策を提案します。

-v ON_ERROR_STOP=1
-v ON_ERROR_STOP=on

2
pt12lol @私のために失敗したとしても、これは仕事をしたこと:psql -v ON_ERROR_STOP=on -f file_name.sql
モルゲン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.