mysql共享锁问题

为什么加了共享锁还能修改数据,跟共享锁的定义不符合啊

begin;
select size from app where id = 1 lock in share mode; # 获取共享锁,锁住行
update app set size = size + 1 where id = 1;#为啥能成功?
commit;

百度百科如下:
image.png
请大佬解释解释,谢谢

阅读 2.6k
3 个回答

同一个事物内,你自己的S锁,为什么不能写数据呢?

其他事务没有持有这一行的S锁或X锁,这个持有了S锁的事务是可以对这一行加X锁的,update操作就是先加了X锁再更新

image.png

首先你要知道的是:锁解决的是并发问题,而你这里根本没有并发

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题