如你在一个事务中
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
可能死锁
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)