34 我正在写一个shell脚本,它使用2种形式来调用psql ...一种是通过命令(-c),另一种是通过文件(-f)。 例如psql -c“创建表foo(条整数)” psql -f foobar.sql 这些形式之间的区别是,如果遇到错误,按命令(-c)调用将返回非零退出代码,而按文件(-f)的调用似乎总是返回零。 我想知道是否有针对此行为的解决方法?(即,如果在执行文件时发生错误,则返回非零值)。 谢谢。 database sql postgresql psql — 金金 source
37 您可以使用以下语句。 psql -v ON_ERROR_STOP=1 -f foobar.sql 即使foobar.sql文件ON_ERROR_STOP顶部未启用,这也会返回正确的返回码。 — 塔耶 source
21 我发现了解决方法。 我需要ON_ERROR_STOP在文件顶部启用。 例: \set ON_ERROR_STOP true — 金金 source +1查看手册页:) — serverhorror +1是最佳解决方案,因为它允许我在脚本中设置变量,因此我可以相信它始终可以正确运行,而不必担心运行时上下文。 — 布兰登2014年