在第一个窗口本人对id=1的行加了共享锁,如下:
第一个窗口事务并没有提交,为何本人在第二个窗口还是能访问到id=1的行?
第一个窗口事务并没有提交,为何本人在第二个窗口还是能访问到id=1的行?
解决方案
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读取数据但不允许修改。 行读取的是最新的数据,假如他被其它事务使用中而没有提交,读取锁将被阻塞直到那个事务结束。
在读取的行上设置一个共享模式的锁。这个共享锁允许其它session读取数据但不允许修改。 行读取的是最新的数据,假如他被其它事务使用中而没有提交,读取锁将被阻塞直到那个事务结束。