行锁模式以及加锁方法:
共享锁:X锁
lock in share mode:共享锁(x锁)
开启两个事务,set autocommit=0的含义是设置当前session禁止自动提交,需要显示commit才可以提交。详见:https://www.cnblogs.com/langtianya/p/4777662.html。
表结构(自己去建表啊...):
首先对sessionA添加lock in share mod,
这时共享锁就已经添加上了,sessionB仍然可以查询记录并且可以添加lock in share mode
SessionA对当前Session进行update修改数据时就会进入死锁状态(看当前语句已经没有反应了并且右下角的查询时间在一直增加)
在SessionB中对锁住的这行记录进行修改时就可以解除死锁状态,SessionB中输出DeadlockFound....
此时SessionA就获得锁可进行更新操作了。。。,再次执行SessionA中的update语句发现可以进行更新了
最后SessionA进行commit提交就会发现数据库已经成功修改了
对事务A执行update
原文:https://www.cnblogs.com/javazyh/p/10697562.html