在mysql查询中获取锁定表

时间:2010-07-12 17:33:07

标签: mysql

有没有办法通过MySQL查询获取锁定表?我有一个C#线程应用程序正在运行,并且有很多表被锁定在应用程序中。

我需要查看锁定的表并分析可能锁定它的代码。

1 个答案:

答案 0 :(得分:46)

使用:

SHOW OPEN TABLES

检查列In_use是否大于0.在这种情况下,表被锁定。

实施例

  • 锁定表格列表:

    show open tables WHERE In_use > 0

  • 检查表格tb_employees是否已锁定:

    show open tables WHERE Table LIKE 'tb_employees' AND In_use > 0

来自official documentation

  

<强> In_use

     
    

表锁的数量或     锁定请求有表。     例如,如果一个客户获得了     使用LOCK TABLE t1锁定表     WRITE,In_use将为1.如果是另一个     客户端发出LOCK TABLE t1 WRITE     桌子保持锁定状态     客户端将阻止等待     锁定,但锁定请求导致     In_use为2.如果计数为零,     该表是开放的但当前不是     正在使用。 In_use也增加了     通过HANDLER ... OPEN声明和     由HANDLER减少......关闭。