我正在执行psql -f my_script.sql
的sql脚本中执行以下操作:
select not exists(select 1 from pg_class where relname='my_table') as my_table_not_exists
\gset
\if :my_table_not_exists
-- raise error
\endif
如何返回非0状态代码并将table 'table_name' doesn't exist
写入stderr?
答案 0 :(得分:0)
您可以设置ON_ERROR_STOP
然后使用该表,然后将收到所需的错误消息,并且处理将终止:
\set ON_ERROR_STOP on
SELECT * FROM my_table WHERE FALSE;
您可以将任意消息输出到标准输出:
\! echo 'Hello!' 1>&2
但是除了导致数据库错误外,无法用非零返回码退出psql
。
也许您应该将bash脚本与psql
协同处理结合使用,以进行更多处理。
答案 1 :(得分:0)