ALTER TABLE错误

问题描述:

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

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

http://www.xaprb.com/blog/2006/08/22/mysqls-error- 1025解释/ – miku 2010-05-27 12:17:56

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

我认为MySQL越来越挂在事实上,当你重命名,FK关系不再有效,它是抛出一个错误。

编辑:确认 FK Rename in MySQL

你需要做这样的事情:

alter table yourTable drop foreign key yourID 
+0

就是这样。谢谢。 – Travis 2010-05-27 23:45:56

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

  1. 添加新列,
  2. 从原来列在复制数据
  3. 删除旧列

只是有在谷歌快速搜索,它看起来像您引用外键中的列 - 防止重命名。

怕我不知道你会如何解决这个问题,因为我还没有在MySQL中使用外键所有的东西