MySQL, переименуйте все столбцы всех таблиц в БД - PullRequest
1 голос
/ 07 октября 2011

У меня около 500+ таблиц в БД, и мне нужно переименовать все столбцы всех таблиц.Ядром базы данных является InnoDB.В настоящее время я выполняю для каждой таблицы

ALTER TABLE RENAME db.table CHANGE oldID newID INT, CHANGE oldDESC newDESC VARCHAR(50);

И в некоторых таблицах происходит сбой (errno: 150), поскольку они имеют ограничения внешнего ключа, ссылающиеся на другие таблицы.

Есть ли умнееспособ сделать это и избежать этих страшных ошибок?

1 Ответ

1 голос
/ 07 октября 2011

Вы можете попробовать отключить проверку внешних ключей во время обновления, а затем включить их снова

РЕДАКТИРОВАТЬ: возможно , это может помочь

START TRANSACTION;  
SET foreign_key_checks = 0; -- off

.. do stuff here    

SET foreign_key_chekcs = 1; -- on.
COMMIT;
...