Bir dosyayı çalıştırırken PostgreSQL çıkış durumu


16

PostgreSQL'i tek bir SQL komutuyla çalıştırırken hata kodları beklendiği gibi döndürülür:

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

Ancak bir dosyayı çalıştırırken hata bastırılır:

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

Bu hataları nasıl geri alacağınız hakkında bir fikriniz var mı?

Yanıtlar:


12

Bunu SQL dosyasının ilk satırına eklemek hile yapar:

\set ON_ERROR_STOP 1

Yeni yorumlar (Teşekkürler!) Aşağıdaki çözümleri önerir:

-v ON_ERROR_STOP=1
-v ON_ERROR_STOP=on

2
@ pt12lol Bu da benim için başarısız oldu, bu işe yaradı:psql -v ON_ERROR_STOP=on -f file_name.sql
Morgen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.