PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

13.4. 应用层数据一致性检查 #

13.4.1. 使用可串行化事务保障一致性
13.4.2. 使用显式阻塞锁保障一致性

在并发环境下,仅仅依赖简单的读已提交隔离级别很难绝对保证多表之间的强一致性业务规则。

13.4.1. 使用可串行化事务保障一致性 #

若对所有写入以及需要一致性数据视图的所有读取操作均采用可串行化(Serializable)事务隔离级别,则无需额外的显式锁开销即可自动保障一致性。应用程序框架应对可串行化冲突(错误码 40001)进行自动重试。

13.4.2. 使用显式阻塞锁保障一致性 #

当无法使用可串行化事务时,为了确保数据行的当前有效性并防止并发修改,必须结合使用 SELECT FOR UPDATE、SELECT FOR SHARE 或显式 LOCK TABLE 语句来锁定目标行或表。