历史版本。 PostgreSQL 7.0 已结束支持。 请参阅 当前版本手册.
13.3. 读已提交隔离级别
读已提交是 Postgres 中的默认隔离级别。当事务使用这一隔离级别时,查询只能看到查询开始之前已经提交的数据,既看不到脏数据,也看不到查询执行期间并发事务提交的更改。
如果查询在执行
UPDATE 语句(或
DELETE 或
SELECT FOR UPDATE)时返回的某行,正在被一个并发未提交事务更新,那么试图更新该行的第二个事务会等待另一个事务提交或回滚。若对方回滚,等待的事务可以继续更改该行。若对方提交(且该行仍然存在,即没有被另一个事务删除),查询会针对该行重新执行,以检查新行版本是否满足查询的搜索条件。如果新行版本满足查询搜索条件,该行将被更新(或删除或标记为更新)。
注意,SELECT 或(带查询的)INSERT
语句的执行结果不会受并发事务影响。