我在db中有大约500多个表,需要重命名所有表的所有列。 数据库引擎是InnoDB。 目前我正在执行每个表
ALTER TABLE RENAME db.table CHANGE oldID newID INT, CHANGE oldDESC newDESC VARCHAR(50);
这在某些表中失败(错误:150),因为它们具有引用其他表的外键约束。
有没有更智能的方法来避免那些可怕的错误?
答案 0 :(得分:1)
您可以尝试在执行更新时禁用外键检查,然后再次启用它们
编辑:也许this可以提供帮助
START TRANSACTION;
SET foreign_key_checks = 0; -- off
.. do stuff here
SET foreign_key_chekcs = 1; -- on.
COMMIT;