PostgreSQL 语法上完全支持 SQL 标准中定义的 4 种事务隔离级别,但在其底层的具体实现上(基于 MVCC 多版本并发控制),具有自己的一些特点。 PostgreSQL 的默认隔离级别是 Read Committed(读已提交)。 以下是这 4 种隔离级别在 PostgreSQL 中的具体表现: 1. 读未提交 (Read Uncommitted) SQL 标准: 允许读取未提交的数据(脏读)。 PostgreSQL 实现: 虽然你可以在代码中设置这个级别,但在 PostgreSQL 中,它的实际表现和 Read Committed(读已提交)完全一样。因为 PostgreSQL 底层使用的是 MVCC(多版本并发控制),天生不支持且绝对不会发生“脏读”。 2. 读已提交 (Read Committed) —— [默认级别] 特点: 一个事务只能看到在它当前查询(Query)开始之前已经提交的数据。 存在的问题: 允许不可重复读 (Non-repeatable Read):在同一个事务中,如果执行两次相同的 查询,期间如果有另一个事务修改并提交了这些数据,两次查询的结...