如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。
上面的话有毛病,来自:https://www.cnblogs.com/nickup/p/9804020.html
一个事务对某行数据加共享锁,其它事务可以读取但是不能修改,这没有毛病。但是一个事务已经加了共享锁,其它事务怎么能继续往上面加锁呢?上面说可以加共享锁,不能加排他锁,这样的表述不对吧。
我们说对数据加锁,那就是锁上了,怎么允许其它事务继续再加一把锁上去呢?
共享锁,其实就是一个事务对数据加了锁,但是钥匙有多把,其它使用可以获取这把锁的钥匙进去看,但是不能改动罢了,这不叫加锁吧。
from 书《MySQL数据库原理、设计与应用》by 黑马程序员