mysql读取数据时加了共享锁(行锁),为什么另一个窗口还是能访问到被加锁行

MySql 码拜 9年前 (2016-05-20) 1425次浏览
在第一个窗口本人对id=1的行加了共享锁,如下:
mysql读取数据时加了共享锁(行锁),为什么另一个窗口还是能访问到被加锁行
第一个窗口事务并没有提交,为何本人在第二个窗口还是能访问到id=1的行?
mysql读取数据时加了共享锁(行锁),为什么另一个窗口还是能访问到被加锁行
解决方案

50

SELECT … LOCK IN SHARE MODE sets a shared mode lock on the rows read. A shared mode lock enables other sessions to read the rows but not to modify them. The rows read are the latest available, so if they belong to another transaction that has not yet committed, the read blocks until that transaction ends.
在读取的行上设置一个共享模式的锁。这个共享锁允许其它session读取数据但不允许修改。 行读取的是最新的数据,假如他被其它事务使用中而没有提交,读取锁将被阻塞直到那个事务结束。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mysql读取数据时加了共享锁(行锁),为什么另一个窗口还是能访问到被加锁行
喜欢 (0)
[1034331897@qq.com]
分享 (0)