gpt4 book ai didi

transactions - 检测错误以决定是回滚还是提交

转载 作者:行者123 更新时间:2023-11-29 12:15:00 25 4
gpt4 key购买 nike

我试图通过在文件中生成一系列 SQL 命令以提供给 psql 进行处理来尽可能地偷懒。简而言之,我正在从外部来源加载一系列导入表(已经通过 COPY 完成),然后在最后一步中,删除/更新/插入记录到主表中(这在功能上也已完成)。

唯一阻止我成功(并能够通过 shell 脚本中的一系列命令执行所有操作)的事实是,有时操作会出现引用完整性错误,因此我必须回滚所有操作,直到可以识别和更正来源。

那么有什么方法可以从 psql 处理的脚本中知道是否发生错误并执行回滚?如果没有错误,请提交。

我总是可以通过切换到更高级的语言来解决问题,打开一个连接并运行每个语句并检查错误,但如果可能的话,我想避免的只是更多的工作代码。

最佳答案

如果您使用的是 psql,您可以使用 -1 命令行选项,并以以下方式启动您的文件:

\设置 ON_ERROR_STOP

这应该将整个 session 包装在一个事务中,并在遇到错误时立即退出。

关于transactions - 检测错误以决定是回滚还是提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1509645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com