在 PostgreSQL 中, 和 是用于并发控制的行级锁(Row-Level Lock)机制。它们通常在事务(Transaction)中使用,以防止多个事务同时操作相同的数据时产生数据不一致的问题(如“丢失更新”)。 下面为你详细解释它们的作用以及两者的区别。 --- 一、 的作用 作用核心:锁定查询到的行,准备对其进行修改,防止其他事务同时修改这些行。 当你执行 时,PostgreSQL 会对查询返回的所有行加上排他锁(Exclusive Lock)。 这告诉数据库:“我正在读取这些数据,并且我马上就要修改它们,在我的事务结束之前,任何人都不准修改这些数据!” 解决的典型问题:丢失更新(Lost Update) 假设有一个电商库存系统,商品 A 的库存还剩 1 件。 如果两个用户(事务 A 和事务 B)同时购买: 1. 事务 A 执行普通的 ,看到库存为 1。 2. 事务 B 执行普通的 ,也看到库存为 1。 3. 事务 A 在应用程序中计算 ,执行 设置库存为 0。 4. 事务 B 也在应用程序中计算 ,执行 设置库存为 0。 结果: 卖出了两件商品,但库存只扣减了一次,这...