为解决死锁问题,我决定对修改数据库行的查询强制执行排序顺序。参与死锁的查询之一是DELETE
查询。
如果我更改了DELETE
查询并添加了WHERE
子句,例如:
DELETE FROM Table WHERE ID = any(array(SELECT id from Table ORDER BY id))
PostgreSQL是否保证按WHERE
子句中强加的顺序删除行?换句话说,在执行此DELETE
查询时,PostgreSQL是否按WHERE
子句指定的顺序获取行上的锁?
任何与相关文档的链接也会有所帮助,因为我自己找不到它。