关于如何检测锁定表的迷你演练:
这可能会阻止数据库在受影响的表和行中强制执行原子性。锁被设计为确保事物保持一致,并且该过程将防止该过程按照设计发生。
创建你的表,插入一些行
create table penguins(spam int, ham int);
insert into penguins(spam, ham) values (3, 4);
显示打开表:
show open tables like "penguins"
打印:
your_database penguins 0 0
企鹅没有锁定,让它锁定:
LOCK TABLES penguins READ;
检查是否已锁定:
show open tables like "penguins"
打印:
your_database, penguins 1, 0
啊哈!它被锁定!让我们解锁吧:
unlock tables
现在它解锁:
show open tables like "penguins"
打印:
your_database penguins 0 0
显示所有当前锁
show open tables where in_use <> 0
如果MySQL开发人员将这些信息放在一个常规表中(这样我可以从my_table中选择my_items,其中my_clauses),而不是从系统变量中删除“show table”语法,这将更有帮助。