来自 MySQL 文档:
锁定读取、UPDATE 或 DELETE 通常会在 SQL 语句处理过程中扫描的每个索引记录上设置记录锁。语句中是否存在将排除该行的 WHERE 条件并不重要。InnoDB 不记得确切的 WHERE 条件,而只知道扫描了哪些索引范围。
当我执行 UPDATE 时(虽然我也会对其他人感兴趣,现在我关心 UPDATE 语句),有没有办法将锁按相同的顺序放置,以便尽可能避免死锁?
如果在使用 INNER JOIN(或使用多个表)执行 UPDATE 时可以这样做,我也会非常感兴趣。
由于并发更新和插入(甚至删除),我的表中发生了死锁。