Trạng thái thoát PostgreSQL khi chạy tệp


16

Khi chạy PostgreSQL với một mã lỗi lệnh SQL duy nhất được trả về như mong đợi:

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

Nhưng khi chạy một tệp, lỗi được loại bỏ:

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

Bất kỳ ý tưởng làm thế nào để có được những lỗi này trở lại?

Câu trả lời:


12

Thêm phần này vào dòng đầu tiên của tệp SQL thực hiện mẹo:

\set ON_ERROR_STOP 1

Nhận xét mới (Cảm ơn!) Đề xuất các giải pháp sau:

-v ON_ERROR_STOP=1
-v ON_ERROR_STOP=on

2
@ pt12lol Điều đó cũng thất bại đối với tôi, điều này đã làm việc:psql -v ON_ERROR_STOP=on -f file_name.sql
Morgen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.