파일을 실행할 때 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
Morgen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.