สถานะการออก PostgreSQL เมื่อเรียกใช้ไฟล์


16

เมื่อเรียกใช้ PostgreSQL ด้วยรหัสข้อผิดพลาดคำสั่ง SQL เดียวจะถูกส่งคืนตามที่คาดไว้:

% 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.