2011-12-19 3 views
6

В нашей базе данных в настоящее время используется двигатель InnoDB. Теперь я хочу добавить функцию полнотекстового поиска, поэтому я хочу преобразовать свои таблицы в MyISAM. Но это нарушает все внешние ключи. Как можно безопасно сменить мои настольные системы на MyISAM?Какой самый безопасный способ конвертировать таблицу с InnoDB в MyISAM?

Как я могу использовать SELECT ... JOIN после того, как я сменил таблицы на движок MyISAM?

ALTER TABLE jobs ENGINE = MyISAM; 
Cannot delete or update a parent row: a foreign key constraint fails 

ответ

6

Я рекомендую вам сделать дамп БД, изменить весь текст из этого файла из InnoDB в MyISAM, а затем загрузить измененный файл

4

Как я знаю, MyISAM не поддерживает внешние ключи (сравните функции, предлагаемые InnoDB по сравнению с функциями MyISAM). MySQL пытается сказать вам, что вам нужно сбросить все ограничения внешнего ключа, которые ссылаются на таблицу jobs, прежде чем менять свой движок на MyISAM.

+0

У меня было такое же сообщение об ошибке, преобразовывающее таблицу, и как только я удалил все ограничения внешних ключей, преобразование работало отлично. Так что это точно, как говорит Кохани! (подумайте о том, что вы делаете, прежде чем удалять их ... в моем случае ограничения были бесполезны, но в некоторых случаях они могут быть там по какой-либо причине (чтобы гарантировать целостность БД, если некоторые приложения прослушиваются?) ;-) – lucaferrario

Смежные вопросы