ALTER TABLE错误

时间:2010-05-27 12:14:19

标签: mysql sql alter-table mysql-error-1025

有人可以向我解释为什么我收到以下错误吗?

我想使用以下语法将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)

非常感谢任何建议

3 个答案:

答案 0 :(得分:2)

我会检查你是否有对该列的任何外键引用。如果是这样,您可能需要删除为该列定义的外部关系,然后重命名,然后使用新列名称将外键关系重新放回原位。

我认为MySQL在重命名这个事实时会感到困惑,因为当你重命名时,FK关系不再有效而且它会引发错误。

编辑:确认 FK Rename in MySQL

你需要做这样的事情:

alter table yourTable drop foreign key yourID

答案 1 :(得分:0)

我认为这可能是一个多步骤的过程。

  1. 添加新列
  2. 从原始列中复制数据
  3. 删除旧列

答案 2 :(得分:0)

只是在谷歌中进行快速搜索,看起来你正在引用外键中的列 - 这阻止了重命名。

害怕我不确定你是如何解决问题的,因为我没有在MySQL中使用外键那么多