1

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

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

我们欢迎所有的建议

4

3 回答 3

2

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

我认为 MySQL 已经挂断了这样一个事实,即当您重命名时,FK 关系不再有效并且它正在引发错误。

编辑: 在 MySQL 中确认 FK 重命名

您将需要执行以下操作:

alter table yourTable drop foreign key yourID
于 2010-05-27T12:23:30.487 回答
0

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

  1. 添加一个新列,
  2. 从原始列复制数据
  3. 删除旧列
于 2010-05-27T12:23:08.623 回答
0

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

恐怕我不确定你会如何解决这个问题,因为我没有在 MySQL 中使用太多的外键

于 2010-05-27T12:23:27.937 回答