↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 7.0 / 6.3
历史版本。 PostgreSQL 7.0 已结束支持。 请参阅 当前版本手册.

13.4. 可串行化隔离级别

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

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

ERROR:  Can't serialize access due to concurrent update
    

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

注意

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

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.