我有两个不同的更新查询,例如
UPDATE `logins` SET `logoutTime` = NOW() WHERE `userId` = '13' AND `date` = '2018-07-17'
UPDATE `logins` SET `logoutTime` = NOW() WHERE `userId` = '79' AND `date` = '2018-07-17'
这将导致innodb死锁。 userId和日期字段已建立索引。没有事务用于此更新查询。这两个更新在更新之前都有一个选择查询
SELECT count(*) FROM logins WHERE `userId` ='$userId' AND `date` = '2018-07-17'";
如果计数为0,则为插入,否则为更新。 select查询没有任何锁子句。为什么上面对两个不同记录的更新查询会导致死锁?