Поиск…


Базовая конверсия

ALTER TABLE foo ENGINE=InnoDB;

Это преобразует таблицу, но не заботится о каких-либо различиях между двигателями. Большинство различий не имеет значения, особенно для небольших таблиц. Но для более занятых столов следует учитывать другие соображения. Соображения конверсии

Преобразование всех таблиц в одну базу данных

Чтобы легко преобразовать все таблицы в одну базу данных, используйте следующее:

SET @DB_NAME = DATABASE();

SELECT  CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements
FROM    information_schema.tables
WHERE   table_schema = @DB_NAME
AND     `ENGINE` = 'MyISAM'
AND     `TABLE_TYPE` = 'BASE TABLE';

ПРИМЕЧАНИЕ. Чтобы работать, вы должны подключиться к своей базе данных для функции DATABASE() , иначе она вернет NULL . Это в основном относится к стандартному mysql-клиенту, поставляемому с сервером, поскольку позволяет подключаться без указания базы данных.

Запустите эту инструкцию SQL, чтобы получить все таблицы MyISAM в вашей базе данных.

Наконец, скопируйте вывод и выполните SQL-запросы от него.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow