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

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

文档 / 锁百科 / 行级锁

行级锁 · FU

FOR UPDATE

行更新锁

最强的行锁模式;与同一行的全部行锁模式冲突,用于删除和可能修改键值的更新。

当前稳定版

冲突关系

以下只比较不同事务在同一行上持有的锁。

与这些模式兼容 0

  • 与同一作用域的所有模式冲突。

纵轴是请求的锁,横轴是另一事务已经持有的锁;只比较同一对象。

取得此模式的命令

SQL 命令取得条件与说明
SELECT FOR UPDATE作用于实际选中的行;目标表同时取得 ROW SHARE。NOWAIT / SKIP LOCKED 改变等待行为,不改变锁冲突规则。
UPDATE(修改键值)修改可供外键引用的唯一索引列时使用;部分索引和表达式索引不算在内。
DELETE在被删除的已有行上取得此模式;目标表同时取得 ROW EXCLUSIVE。
MERGE … WHEN MATCHED THEN DELETE / UPDATE(键)实际删除或更新键列的匹配行;纯插入分支不适用。
INSERT … ON CONFLICT DO UPDATE(键)冲突路径修改键列时,锁住冲突的已有行;不是普通 INSERT 的固定行锁。

链接指向本站 PostgreSQL 18 的 SQL 命令百科。命令也可能取得其他锁,查看完整命令关联表。

其他锁模式

数据来源

当前查看 PostgreSQL 18,采样构建 REL_18_STABLE · 753057e340da。冲突关系与命令行为按该版本的文档和源码整理。命令链接进入本站 SQL 命令百科,并保留所选版本。

本站显式锁定手册 · 官方手册

查看采样源码与构建依据

资料核验日期:2026-09-26。