lock tables 用于锁定当前线程的表。如果表被其他线程锁定,则当前线程会等待,直到可以获取所有的锁定为止。
unlock tables 用于释放当前线程获得的任何锁定。
session_1 | session_2 |
获得表 t11 的read 锁定: lock table t11 read; |
|
当前session可以查询该表记录: select * from t11 where c1 = 131072.20 |
其他session也可以查询该表的记录: select * from t11 |
其他session插入锁定表会等待获得锁: INSERT INTO t11 VALUES(123.0,123.0) 等待。。。 |
|
释放锁: unlock tables |
等待。。。 |
session获得锁,插入操作完成: 1 queries executed, 1 success, 0 errors, 0 warnings 查询:insert into t11 values(123.0,123.0) 共 1 行受到影响 执行耗时 : 45.100 sec |
|
查看表数据: select * from t11 where c1 = 123.0 |
查看表数据:
select * from t11 where c1 = 123.0 |