读锁:共享锁 readLock
写锁:独占锁 writeLock 不允许其他事务对当前数据进行修改和读取操作
MySQL中的加锁语句
LOCK TABLES,锁表(或者视图)权限。
-
可以锁住那些你拥有select权限的表,以防止其他session访问或者修改这个表。
-
如果锁住视图,那么视图的所有基表都被锁住。
-
如果锁住的表上有触发器,那么和这个触发器所有相关的表都被锁住。
-
要锁住某张表的前提是要拥有表上select 权限。
lock table有如下两种表达方式:
-
lock table xxx read,只读方式锁住xxx,该表只能被select,不能被修改。如果在lock时,该表上存在事务,则lock语句挂起,直到事务结束。多个会话可以同时对表执行该操作。
-
lock table xxx write,读写方式锁住xxx,lock table的会话可以对表xxx做修改及查询等操作,而其他会话不能对该表做任何操作,包括select也要被阻塞。
可以同时锁住多个表。
例子:
参考链接:https://blog.csdn.net/q3dxdx/article/details/51003080