x-y*_*uri 3 postgresql transactions psycopg2 python-3.x
我有一个从旧数据库导入数据的脚本。一路上我遇到了违反唯一约束的情况。我想修改查询并再次执行它,但它说“psycopg2.InternalError:当前事务已中止,命令被忽略,直到事务块结束”:
try:
pcur.execute(sql, values)
except psycopg2.IntegrityError:
value = ...
pcur.execute(sql, values)
Run Code Online (Sandbox Code Playgroud)
如何在不切换到自动提交模式的情况下做到这一点?
受到这个答案的启发:
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')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3889 次 |
| 最近记录: |