我正在使用 Postgres 9.1。我想知道在同一个事务中使用多个 SELECT FOR UPDATES 是否可能导致竞争条件。
2个并发事务:
事务 1:选择表 1 上的更新 -- 成功获取锁
事务 2:选择表 2 上的更新 -- 成功获取锁
事务 2:选择表 1 上的更新 -- 等待从事务 1 释放锁
事务 1:选择表 2 的更新 -- 等待事务 2 的锁释放
在这种情况下会发生什么?等待的事务之一最终会超时吗?如果是这样,有没有办法配置超时持续时间?
编辑:死锁超时是我正在寻找的配置吗?