如何检查特定表在Mysql中是否被锁定?

Pra*_*tik 2 mysql

我正在执行以下查询以查找我的临时表是否被锁定。

show open tables where in_use > 0 and table = 'temp'
Run Code Online (Sandbox Code Playgroud)

但是它抛出以下错误:

'table ='temp'附近的语法错误

我已经搜索过,但无法获得正确的语法。谁能帮忙。

Zaf*_*lik 5

方法1:只需执行命令show processlist;或显示完整的流程清单;命令并检查是否有任何查询/表在进程列表中显示为已锁定。

注意:请以超级用户身份检查以检查服务器上所有正在运行的进程。

方法2:执行show engine innodb状态;你可以在这里检查锁定...

方法3:在MySQL 5.6及更高版本中,您也可以在info_schema数据库中对其进行检查。

注意:如果使用的是guiadmin之类的gui工具,例如mysqladministrator,则可以检查所有正在运行的进程,并轻松查找是否有任何表被锁定。

更新:

由于您想通过sql查询获取此信息,因此可以在下面的查询中使用-

对于所有锁定表-

SHOW OPEN TABLES WHERE in_use>0;
Run Code Online (Sandbox Code Playgroud)

要检查特定的表-

SHOW OPEN TABLES WHERE in_use>0 AND `Table`='your_table_name';
Run Code Online (Sandbox Code Playgroud)