会话1
update t1 set a='10’ where id=100; --执行完,不提交
update t1 set a=‘20’ where id=200 --执行等待会话2的锁。
会话2
update t1 set a='10’ where id=200; --执行完,不提交
update t1 set a=‘20’ where id=100 --执行等待会话1的锁
直接报错死锁,会话全部回滚。
会话1
update t1 set a='10’ where id=100; --执行完,不提交
update t1 set a=‘20’ where id=200 --执行等待会话2的锁。
会话2
update t1 set a='10’ where id=200; --执行完,不提交
update t1 set a=‘20’ where id=100 --执行等待会话1的锁
直接报错死锁,会话全部回滚。