我正在执行以下查询以查找我的临时表是否被锁定。
show open tables where in_use > 0 and table = 'temp'
Run Code Online (Sandbox Code Playgroud)
但是它抛出以下错误:
'table ='temp'附近的语法错误
我已经搜索过,但无法获得正确的语法。谁能帮忙。
方法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)