mysql版本5.7.16
过程1:
START TRANSACTION;
SELECT * from statistic_activity WHERE activity_id = 1 FOR UPDATE;
过程2:
START TRANSACTION;
INSERT INTO `statistic_activity` (`activity_id`) values (2678597);
如果进程1 select语句返回结果,则进程2不会被阻止(如您所料)
但如果进程1返回空集(不存在activity_id=1的行),则整个表被锁定,所有插入都被阻止,直到进程1事务结束。
这是预期的行为吗?
暂无答案!
目前还没有任何答案,快来回答吧!