如果有人能帮助我了解MySQL中的适当命令,以查询所有数据库中是否有"MyISAM“引擎,我将不胜感激。我需要将所有DB &表从MyISAM转换为InnoDB。
发布于 2013-09-17 04:56:25
下面是查找具有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');上面的查询将列出所有具有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');您可以执行这些语句来转换引擎。
https://dba.stackexchange.com/questions/50028
复制相似问题