Michal Charemza Asked: 2020-09-14 13:32:34 +0800 CST2020-09-14 13:32:34 +0800 CST 2020-09-14 13:32:34 +0800 CST 自动提交模式下的 PostgreSQL 更新会死锁吗? 772 在自动提交模式下,PostgreSQL 中的更新是否可能死锁?如果是这样,如何以及为什么?(或者,为什么不呢?) postgresql transaction 1 个回答 Voted Best Answer Laurenz Albe 2020-09-14T22:52:27+08:002020-09-14T22:52:27+08:00 如果更新影响多个表行,那肯定是可能的。 这可以通过两种方式实现: 该查询修改了目标表中的多行。 更新后的表对另一个表有外键约束。在这种情况下,您最终可能会FOR KEY SHARE锁定所引用的表。 如果您的语句成功锁定了几行,然后又阻塞了其他行上的锁,则可能会发生死锁。
如果更新影响多个表行,那肯定是可能的。
这可以通过两种方式实现:
该查询修改了目标表中的多行。
更新后的表对另一个表有外键约束。在这种情况下,您最终可能会
FOR KEY SHARE
锁定所引用的表。如果您的语句成功锁定了几行,然后又阻塞了其他行上的锁,则可能会发生死锁。