在MySQL中按引擎显示表

Kit*_*ers 79 mysql storage-engines

如何使用给定的引擎显示MySQL中的所有表,例如InnoDB,MyISAM,FEDERATED?

Chs*_*y76 124

使用INFORMATION_SCHEMA.TABLES表:

SELECT table_name FROM INFORMATION_SCHEMA.TABLES
  WHERE engine = 'InnoDB'
Run Code Online (Sandbox Code Playgroud)

  • 您可能还需要具有该模式的模式,因此查询将如下所示:SELECT TABLE_SCHEMA,TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE engine ='InnoDB' (2认同)

Alv*_*vin 78

如果您想要来自单个数据库的结果

SELECT TABLE_NAME FROM information_schema.TABLES
    WHERE TABLE_SCHEMA = 'dbname' AND engine = 'InnoDB';
Run Code Online (Sandbox Code Playgroud)


MTK*_*MTK 6

这里的其他例子.

所有引擎表(系统表除外):

SELECT TABLE_SCHEMA as DbName ,TABLE_NAME as TableName ,ENGINE as Engine 
FROM information_schema.TABLES 
WHERE ENGINE = 'MyISAM' -- or InnoDB or whatever
AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');
Run Code Online (Sandbox Code Playgroud)

除引擎外的所有表(系统表除外):

SELECT TABLE_SCHEMA as DbName ,TABLE_NAME as TableName ,ENGINE as Engine 
FROM information_schema.TABLES 
WHERE ENGINE != 'MyISAM' -- or InnoDB or whatever
AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');
Run Code Online (Sandbox Code Playgroud)