MySQL
Преобразование из MyISAM в InnoDB
Поиск…
Базовая конверсия
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