有人能给我解释一下为什么我收到下面的错误吗?
我想使用以下语法将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)如有任何建议,我们将不胜感激
发布于 2010-05-27 20:23:30
我将检查您是否有任何对该列的外键引用。如果是这样,您可能需要删除已为该列定义的外键关系,然后重命名,然后使用新列名将外键关系放回原位。
我认为MySQL被挂起的事实是,当您重命名时,FK关系不再有效,并且它会抛出错误。
编辑:确认的FK Rename in MySQL
您将需要执行以下操作:
alter table yourTable drop foreign key yourID发布于 2010-05-27 20:23:09
我认为这可能是一个多步骤的过程。
发布于 2010-05-27 20:23:28
只是在google中快速搜索一下,它看起来像是在引用外键中的列-这阻止了重命名。
恐怕我不确定您将如何解决这个问题,因为我在MySQL中很少使用外键
https://stackoverflow.com/questions/2920946
复制相似问题