【问题标题】:ALTER TABLE errorALTER TABLE 错误
【发布时间】:2011-02-24 15:27:12
【问题描述】:

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

我想使用以下语法将 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 sql alter-table mysql-error-1025


【解决方案1】:

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

我认为 MySQL 对当您重命名时,FK 关系不再有效并且抛出错误这一事实感到困惑。

编辑:确认 FK Rename in MySQL

你需要做这样的事情:

alter table yourTable drop foreign key yourID

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-12
        • 2011-06-18
        • 2016-04-26
        相关资源
        最近更新 更多