MySQL中的锁定语句: lock tables 和 unlock tables

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
传送时间 : 0 sec
总耗时 : 45.100 sec

 查看表数据:

 select * from  t11 where c1 = 123.0                        

 

 

 查看表数据:

 select * from  t11 where c1 = 123.0

 

 

 

posted @ 2020-07-21 21:09  别看窗外的世界  阅读(431)  评论(0编辑  收藏  举报