我正在写一个shell脚本,使用2个窗体调用psql …一个是通过命令(-c),另一个是通过文件(-f)。
例如psql -c“create table foo(bar integer)”
psql -f foobar.sql
这些forms之间的一个区别是,如果遇到错误,通过命令调用(-c)将返回非零的退出代码,而文件调用(-f)总是返回零。
我想知道是否有这种行为的解决方法? (即如果执行文件时发生错误,则返回非零值)。
谢谢。
你可以使用下面的语句。
psql -v ON_ERROR_STOP=1 -f foobar.sql
这将返回正确的返回码,即使foobar.sql
文件不启用文件顶部的ON_ERROR_STOP
。
我发现如何解决这个问题。
我需要在文件的顶部启用ON_ERROR_STOP
。
例:
\set ON_ERROR_STOP true