21 ноября 2012 02:01 пп
Конвертация таблиц MYSQL из MyISAM в InnoDB

Допустим у вас есть база в MYSQL созданная на движке MyISAM, и вам вдруг понадобилось использовать в ней внешние ключи, или FOREIGN KEY, который поддерживается только в движке INNODB, решение одно, сконвертировать таблицы в БД, в этой заметке я приведу пример как это сделать быстро, при любом количестве таблиц в вашей базе данных.
Нам понадобится выполнить всего две команды, код которых приведен ниже. Замените в моих примерах параметры заключенные в квадратные скобки «[ ]«.
Создадим список запросов для конвертации таблиц
Код:
mysql -u [USER_NAME] -p -e "SHOW TABLES IN [DATABASE_NAME];" | tail -n +2 | xargs -I '{}' echo "ALTER TABLE {} ENGINE=INNODB;" > alter_table.sql
perl -p -i -e 's/(search_[a-z_]+ ENGINE=)INNODB/\1MYISAM/g' alter_table.sql
Затем запустим запросы для конвертации таблиц
Код:
mysql -u [USER_NAME] -p [DATABASE_NAME] < alter_table.sql
После выполнения команды перезапустите mysql сервер, на этом все.
Постовой Читы на варфейс
Комментариев нет »
Leave a Reply
You must be logged in to post a comment.