开启一个事务以后事务
若是A事务当中有语句加入了一个排它锁,那么A事务没有提交以前。其余事务只能读取这个而不能写入或者更新io
A事务:table
start transaction ; select * from table_name where id =1 for update ;class
B事务:date
update table_name set count = count - 1 where id= 1;select
若是A事务没有执行提交的话,B事务会阻塞直到A事务提交以后才会执行。数据
若是A事务这个id是主键的话,INODB引擎下是会产生一个行级锁,就是能对其余行和列进行操做。否者的话是一个表锁。tab
S锁di
事务A对数据1加了S锁以后,只能对其进行读取而不能更改。 在事务A提交以前,其余事务也是只能读取不能更改。co
也就是其余事务也只能加S锁,而不能加排他锁。