有人可以向我解释为什么我收到以下错误吗?
我想使用以下语法将mysql表中的“exerciseID”列重命名为“ID”。
ALTER TABLE `exercises` CHANGE `exerciseID` `ID` INT( 11 ) NOT NULL AUTO_INCREMENT
但是我收到以下错误:
MySQL said:
#1025 - Error on rename of './balance/#sql-de_110e' to './balance/exercises' (errno: 150)
非常感谢任何建议
答案 0 :(得分:2)
我会检查你是否有对该列的任何外键引用。如果是这样,您可能需要删除为该列定义的外部关系,然后重命名,然后使用新列名称将外键关系重新放回原位。
我认为MySQL在重命名这个事实时会感到困惑,因为当你重命名时,FK关系不再有效而且它会引发错误。
编辑:确认 FK Rename in MySQL你需要做这样的事情:
alter table yourTable drop foreign key yourID
答案 1 :(得分:0)
我认为这可能是一个多步骤的过程。
答案 2 :(得分:0)
只是在谷歌中进行快速搜索,看起来你正在引用外键中的列 - 这阻止了重命名。
害怕我不确定你是如何解决问题的,因为我没有在MySQL中使用外键那么多