MySQL Innodb死锁在更新两个不同的行

时间:2018-07-17 05:32:50

标签: mysql innodb deadlock

我有两个不同的更新查询,例如

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查询没有任何锁子句。为什么上面对两个不同记录的更新查询会导致死锁?

0 个答案:

没有答案