死锁问题如下:
1、创建表(MySQL版本:5.7.36)
create table demo (
id int(10) primary key
)engine=innodb;
2、初始化数据
insert into demo values(1);
insert into demo values(3);
insert into demo values(6);
3、执行如下SQL:
sessionA:
set session autocommit=0;
start transaction;
insert into demo values(4);
sessionB:
set session autocommit=0;
start transaction;
insert into demo values(4);
sessionC:
set session autocommit=0;
start transaction;
insert into demo values(4);
sessionA:rollback;
控制台结果(也可能是sessionB死锁,sessionC成功):
sessionB:插入成功
sessionC:Deadlock found when trying to get lock; try restarting transaction
各位同学分析一下产生死锁的原因?
https://dev.mysql.com/doc/refman/5.7/en/innodb-locks-set.html
行记录排它锁
