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)
任何建议,将不胜感激
答
我会检查,看看你有该列的任何外键引用。如果是这样,您可能需要删除您为该列定义的外部关系,然后重命名,然后将外键关系重新置于新列名称的位置。
我认为MySQL越来越挂在事实上,当你重命名,FK关系不再有效,它是抛出一个错误。
编辑:确认 FK Rename in MySQL
你需要做这样的事情:
alter table yourTable drop foreign key yourID
+0
就是这样。谢谢。 – Travis 2010-05-27 23:45:56
答
我认为这可能是一个多步骤的过程。
- 添加新列,
- 从原来列在复制数据
- 删除旧列
答
只是有在谷歌快速搜索,它看起来像您引用外键中的列 - 防止重命名。
怕我不知道你会如何解决这个问题,因为我还没有在MySQL中使用外键所有的东西
http://www.xaprb.com/blog/2006/08/22/mysqls-error- 1025解释/ – miku 2010-05-27 12:17:56