在MySQL中,下面update语句会出现‘锁’的现象吗

在MySQL中,下面update语句会出现‘锁’的现象吗,第1张

update理论上都有锁,只要不死锁,就问题不大

如你在一个事务中

update user where userid=1

update dept where deptid=2

commit

而另一个连接

update dept where deptid=2

update user where userid=1

commit

如果这2个连接同时执行这些语句,就可能死锁。

所以要特别注意update的表的顺序和where 条件的中记录的执行顺序(对参数先排序)

1)

update user set ... where userid=1

update user set ... where userid=2

commit

2)

update user set ... where userid=2

update user set ... where userid=1

commit

可能死锁

update理论上都有锁,只要不死锁,就问题不大

如你在一个事务中

update user where userid=1

update dept where deptid=2

commit

而另一个连接

update dept where deptid=2

update user where userid=1

commit

如果这2个连接同时执行这些语句,就可能死锁。

所以要特别注意update的表的顺序和where 条件的中记录的执行顺序(对参数先排序)

1)

update user set ... where userid=1

update user set ... where userid=2

commit

2)

update user set ... where userid=2

update user set ... where userid=1

commit

可能死锁


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7363967.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存