Я был бы признателен, если бы кто-нибудь мог мне помочь с тем, что является правильной командой в MySQL для запроса всей базы данных на наличие движка «MyISAM». Мне нужно конвертировать все БД и таблицы из MyISAM в InnoDB.
Я был бы признателен, если бы кто-нибудь мог мне помочь с тем, что является правильной командой в MySQL для запроса всей базы данных на наличие движка «MyISAM». Мне нужно конвертировать все БД и таблицы из MyISAM в InnoDB.
Ответы:
Ниже приведен запрос, чтобы найти все таблицы, в которых есть MyISAM
Engine
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');
Выше Query перечислит все таблицы, имеющие MyISAM
Engine.
Как преобразовать ваши существующие таблицы 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');
Вы можете выполнить эти операторы для преобразования двигателей.