gpt4 book ai didi

postgresql - 如何从 psycopg2 事务中的错误中恢复?

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

我有一个从旧数据库导入数据的脚本。一路上我遇到了违反唯一约束的情况。我想修改查询并再次执行它,但它说“psycopg2.InternalError:当前事务已中止,命令被忽略,直到事务 block 结束”:

try:
pcur.execute(sql, values)
except psycopg2.IntegrityError:
value = ...
pcur.execute(sql, values)

如何在不切换到自动提交模式的情况下做到这一点?

最佳答案

灵感来自this answer :

pcur.execute('SAVEPOINT sp1')
try:
pcur.execute(sql, values)
except psycopg2.IntegrityError:
pcur.execute('ROLLBACK TO SAVEPOINT sp1')
value = ...
pcur.execute(sql, values)
else:
pcur.execute('RELEASE SAVEPOINT sp1')

关于postgresql - 如何从 psycopg2 事务中的错误中恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44626629/

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