MySQL命令查询所有MyISAM数据库

Jam*_*ise 14 mysql innodb myisam

如果有人可以帮助我了解 MySQL 中查询所有数据库以获取“MyISAM”引擎的正确命令,我将不胜感激。我需要将所有数据库和表从 MyISAM 转换为 InnoDB。

Abd*_*naf 31

下面是查找所有具有MyISAM引擎的表的查询

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

以上查询将列出所有具有MyISAM引擎的表。

有关如何将现有 MyISAM 表转换为 InnoDB 以下是将返回 ALTER 语句以将现有MyISAM表转换为InnoDB.

SELECT CONCAT('ALTER TABLE `', TABLE_SCHEMA,'`.`',TABLE_NAME, '` ENGINE = InnoDB;') FROM information_schema.TABLES WHERE ENGINE='MyISAM' AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');
Run Code Online (Sandbox Code Playgroud)

您可以执行这些语句来转换引擎。