Mysq存储过程强行停止后死锁

MySql 码拜 9年前 (2016-02-03) 833次浏览
Mysq存储过程强行停止后,再次执行[Err] 1213 – Deadlock found when trying to get lock; try restarting transaction。
出现临时表上
CREATE temporary TABLE `TMP_CUID` (
`CUID` int(11) NOT NULL AUTO_INCREMENT,
`UID` int(11) NOT NULL,
PRIMARY KEY (`CUID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into TMP_CUID
(UID)
select cid from t limit 1;
出现在这句insert上 。
解决方案

50

引用 8 楼 jujishouyzq 的回复:
Quote: 引用 7 楼 yupeigu 的回复:

临时表,是每个连接只能看到本人的临时表,就算临时表的名称是一样的,所以,本人在想能否是原因是:
select cid from t limit 1;
这句导致t表被锁定了导致的。

你的意思是这个insert into select 这个句有问题?

这个语句里select部分会锁定整个表。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Mysq存储过程强行停止后死锁
喜欢 (0)
[1034331897@qq.com]
分享 (0)