I am using psql command to connect and issue a query on postgreSQL database. Can anybody let me know how to check the return status of the executed query in shell script.
I have used echo $?
command to check the status but it always returning zero.
Thanks for the help.
psql
return code is documented as :
EXIT STATUS
psql returns 0 to the shell if it finished normally, 1 if a fatal error of its own occurs (eg out of memory, file not found), 2 if the connection to the server went bad and the session was not interactive, and 3 if an error occurred in a script and the variable ON_ERROR_STOP was set.
You probably just want to use ON_ERROR_STOP.
Failure getting tested and reported to the shell:
$ psql -d test -v "ON_ERROR_STOP=1" <<EOF
select error;
select 'OK';
EOF
ERROR: column "error" does not exist
LINE 1: select error;
$ echo $?
3
Failure getting ignored and not reported to the shell:
$ psql -d test <<EOF
select error;
select 'OK';
EOF
ERROR: column "error" does not exist
LINE 1: select error;
^
?column?
----------
OK
(1 row)
$ echo $?
0
如前所述在这里 ,你还可以在你的SQL文件/脚本的顶部添加此行:
\set ON_ERROR_STOP true
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.