Вы не можете конвертировать напрямую из InnoDB в MyISAM, пока внешние ключи все еще там. Вы должны сначала удалить ограничения. Для этого для каждой таблицы выполните следующие действия:
- выпуск
SHOW CREATE TABLE tablename
- Для каждого объявления CONSTRAINT ... FOREIGN KEY в выходных данных вам нужно будет ввести
ALTER TABLE tablename DROP FOREIGN KEY x
, где x
- идентификатор, который появляется между CONSTRAINT
и FOREIGN KEY
.
- Выпуск
SHOW CREATE TABLE tablename
снова. Ограничения внешнего ключа могли оставить индексы (поскольку InnoDB требует индекс для каждого внешнего ключа, и он не обязательно удалит их только потому, что вы удалили ограничение). Для каждого индекса, который, по вашему мнению, вам больше не нужен, введите ALTER TABLE tablename DROP INDEX indexname
.
После того как вы сделали это для всех таблиц, связанных с ограничениями, вы можете конвертировать таблицы в MyISAM по отдельности, используя ALTER TABLE tablename ENGINE=MYISAM
.