psql脚本执行未返回错误

时间:2020-07-01 12:58:42

标签: postgresql psql

我正在尝试使用psql执行多个SQL脚本。我创建了一个主脚本,其中包含所有要执行的脚本,如下所示。我希望所有脚本一起成功或失败。

master.sql

    BEGIN;
    \i one.sql
    \i two.sql
    \i three.sql
    COMMIT;

我试图捕获psql的错误代码以确定它是否成功。当我查询?$时,它总是返回0。我想出在将ON_ERROR_STOP = 1添加到命令时会返回正确的错误代码。这种方法存在问题,如果错误发生在three.sql中,则它不会回退one.sql和two.sql事务。

psql -U postgres -h localhost -d test -v ON_ERROR_STOP=1 -f master.sql

找出脚本是否成功执行的正确方法是什么。

0 个答案:

没有答案