【发布时间】:2018-11-30 19:09:24
【问题描述】:
我运行了一个存储过程
....
select xxxx
if xxxx !found
insert xxxxx
do stuff with xxx
...
显然这里有一场比赛。我天真的期望是,如果我正确设置了事务隔离级别(可序列化),那么比赛将自动解决(通过透明重启,就像我使用过的其他数据库系统一样)。情况似乎并非如此。
我想我必须自己检测 40001 错误并重新提交失败的交易。
正确吗?有没有我可以在某处设置的标志说“请用魔法来做”?
【问题讨论】:
标签: postgresql transaction-isolation