Статус виходу 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
Морген
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.