如何在没有锁的情况下同时更新 PostgreSQL 13 table 行

How to concurrently update PostgreSQL 13 table row without locks

我需要用每个 ID 的不同度量来更新 table,这些更新将由不同的交易 运行。

我需要知道是否有办法解锁更新语句中的行,因为我目前不需要读取数据,数据一致性也不成问题。

提前致谢。

两个事务无法同时更新同一行。

但这不是必须的。只要确保你的数据库事务尽可能短,那么就不会长时间持有锁。您可以将该行的更新设置为接近事务结束的模式,以减少持有锁的时间。

最后,我在一个过程中实现了不同的事务(插入、更新),并在每个事务后使用 COMMIT 释放了锁,以避免死锁,遵循以下评论: