mysql死锁,错误1213:尝试获取锁时发现死锁;尝试重新启动事务

fdbelqdn  于 2023-04-05  发布在  Mysql
关注(0)|答案(1)|浏览(634)

我有两个程序。一个如下:

begin Tx;
select * from page where id=1 lock in share mode;
sleep(10);
update page.count = page.count+1 where id=1

commit;

另一个是:

update page.count = 100 where id=1;

我运行它们,第二个程序返回err:

Error 1213: Deadlock found when trying to get lock; try restarting transaction 。

谁能告诉我为什么会僵局?

noj0wjuj

noj0wjuj1#

由于两个程序试图同时访问表中的同一行(id=1),因此发生了死锁。第一个程序在共享模式下锁定该行,而第二个程序试图更新同一行。由于它们正在访问同一行,因此两个程序都无法完成,从而导致死锁。

相关问题