↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.0 / 6.3
历史版本PostgreSQL 7.0 已于 2005 年 5 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

13.4. 可串行化隔离级别

可串行化提供最高的事务隔离。当事务使用可串行化级别时,查询只能看到事务开始之前已经提交的数据,既看不到脏数据,也看不到事务执行期间并发事务提交的更改。因此,该级别模拟串行的事务执行,就好像事务是一个接一个串行执行的,而不是并发执行的。

如果查询在执行 UPDATE(或 DELETE 或 SELECT FOR UPDATE)语句时返回的某行,正在被一个并发未提交事务更新,那么试图更新该行的第二个事务会等待另一个事务提交或回滚。若对方回滚,等待的事务可以继续更改该行。若并发事务提交,可串行化事务将被回滚并收到以下消息:

ERROR:  Can't serialize access due to concurrent update
    

因为可串行化事务不能修改在它开始之后被其他事务更改过的行。

注意

注意, SELECT 或(带查询的) INSERT 的执行结果不会受并发事务影响。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。