引用文档:
Read是PostgreSQL中的默认隔离级别。当事务使用此隔离级别时,SELECT查询(没有FOR /SHARE子句)只看到查询开始前提交的数据;它从未看到在并发事务执行查询期间提交的未提交数据或更改。实际上,SELECT查询在查询开始运行时会看到数据库的快照。然而,SELECT确实看到了以前在它自己的事务中执行的更新的效果,即使它们还没有提交。还请注意,两个连续的SELECT命令可以看到不同的数据,即使它们位于单个事务中,如果其他事务在执行第一个SELECT期间提交更改的话。
那么,PostgreSQL是否看到由另一个事务提交的更改?
发布于 2013-04-30 15:03:28
确实如此。您用黑体字标记的第一句涉及“并发事务”,即更改数据但在事务仍在进行时未提交的事务。如果这些并发事务在您的事务之前提交,那么您将在连续select中看到它们在事务中的数据。
https://dba.stackexchange.com/questions/41233
复制相似问题