我正在编写一个使用 2 种形式调用 psql 的 shell 脚本……一种是通过命令(-c),另一种是通过文件(-f)。
例如 psql -c "create table foo (bar integer)"
psql -f foobar.sql
这些形式之间的一个区别是,如果遇到错误,命令调用 (-c) 返回非零退出代码,而文件调用 (-f) 似乎总是返回零。
我想知道这种行为是否有解决方法?(即,如果在执行文件时发生错误,则返回非零值)。
谢谢。
我正在编写一个使用 2 种形式调用 psql 的 shell 脚本……一种是通过命令(-c),另一种是通过文件(-f)。
例如 psql -c "create table foo (bar integer)"
psql -f foobar.sql
这些形式之间的一个区别是,如果遇到错误,命令调用 (-c) 返回非零退出代码,而文件调用 (-f) 似乎总是返回零。
我想知道这种行为是否有解决方法?(即,如果在执行文件时发生错误,则返回非零值)。
谢谢。
您可以使用以下语句。
即使文件在文件顶部
foobar.sql
未启用,这也会返回正确的返回码。ON_ERROR_STOP
我发现了如何解决这个问题。
我需要
ON_ERROR_STOP
在文件顶部启用。例子: