Serializable Isolation Level上的PostgreSQL手册页指出:
[Like]可重复读取级别,使用此级别的应用程序必须准备好因序列化失败而重试事务.
在可重复读取或可序列化级别遇到序列化失败的条件是什么?
我尝试使用两个psql运行实例来引发序列化失败,但即使事务是由一个实例提交的,另一个实例在可序列化级别的事务中,而另一个实例在提交其更改时成功.两者都只是将记录插入表中,所以也许我需要尝试更复杂的东西.
基本上我试图了解在序列化失败的情况下会发生什么以及如何出现序列化失败.
我遇到了“由于并发更新而无法序列化访问”的问题。我检查了日志,我可以清楚地看到两个事务试图同时更新一行。
我的 sql 查询
UPDATE sessionstore SET valid_until = %s WHERE sid = %s;
Run Code Online (Sandbox Code Playgroud)
如何告诉 postgres “尝试”更新行而不抛出任何异常?