ноября 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 сервер, на этом все.

Постовой Читы на варфейс




Комментариев нет »


Trackback URI | Comments RSS

Leave a Reply

You must be logged in to post a comment.


« | »



Server load average: 0.19, 0.09, 0.02
Server uptime: 355 days, 12:08
Your IP is: 54.162.76.55.