单个表锁定:
格式: LOCK TABLES tbl_name {READ | WRITE},[ tbl_name {READ | WRITE},……]
例子: lock tables db_a.tbl_aaa read; // 锁定了db_a库中的tbl_aaa表
解锁: unlock tables;
全局表锁定:
命令: FLUSH TABLES WITH READ LOCK; // 所有库所有表都被锁定只读
解锁: unlock tables;
注意:以上两个锁表语句在执行的时候都需要注意个特点,就是隐式提交的语句,在退出mysql终端的时候都会隐式的执行unlock tables,也就是如果要让表锁定生效就必须一直保持对话。
查看表锁定:
命令: show open tables in_use > 0;
mysql> show open tables where in_use > 0;
+-----------+---------+--------+-------------+
| Database | Table | In_use | Name_locked |
+-----------+---------+--------+-------------+
| db_a | tbl_aaa | 1 | 0 |
+-----------+---------+--------+-------------+
1 row in set (0.00 sec)