pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
读已提交 是 Postgres 中的默认隔离级别。当事务使用这一隔离级别时,查询只能看到查询开始之前已经提交的数据,既看不到脏数据,也看不到查询执行期间并发事务提交的更改。
如果查询在执行 UPDATE 语句(或 DELETE 或 SELECT FOR UPDATE)时返回的某行,正在被一个并发未提交事务更新,那么试图更新该行的第二个事务会等待另一个事务提交或回滚。若对方回滚,等待的事务可以继续更改该行。若对方提交(且该行仍然存在,即没有被另一个事务删除),查询会针对该行重新执行,以检查新行版本是否满足查询的搜索条件。如果新行版本满足查询搜索条件,该行将被更新(或删除或标记为更新)。
注意, SELECT 或(带查询的) INSERT 语句的执行结果不会受并发事务影响。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。