【问题标题】:#1025 - Error on rename of './database/#sql-2e0f_1254ba7' to './database/table' (errno: 150)#1025 - 将“./database/#sql-2e0f_1254ba7”重命名为“./database/table”时出错(错误号:150)
【发布时间】:2011-05-04 02:18:44
【问题描述】:

所以我试图向我的数据库中的一个表添加一个主键。现在它有一个这样的主键:

PRIMARY KEY (user_id, round_number)

其中 user_id 是外键。

我正在尝试将其更改为:

PRIMARY KEY (user_id, round_number, created_at)

我在 phpmyadmin 中通过单击表结构视图中的主键图标来执行此操作。

这是我得到的错误:

#1025 - Error on rename of './database/#sql-2e0f_1254ba7' to './database/table' (errno: 150)

它是一个带有 InnoDB 表引擎的 MySQL 数据库。

【问题讨论】:

标签: mysql sql phpmyadmin innodb mysql-error-1025


【解决方案1】:

如果您正在添加外键并遇到此错误,则可能是子表中的值不存在于父表中。

假设必须添加外键的列的所有值都设置为 0,并且该值在您引用的表中不可用。

您可以设置一些存在于父表中的值,然后添加对我有用的外键。

【讨论】:

    【解决方案2】:

    如前所述,您需要删除 FK。在 Mysql 上这样做:

    ALTER TABLE `table_name` DROP FOREIGN KEY `id_name_fk`;
    
    ALTER TABLE `table_name` DROP INDEX `id_name_fk`;
    

    【讨论】:

    • 您的回答对我很有帮助。 DROP FOREIGN KEY 解决了这个问题。谢谢
    • 这也解决了我的问题,但同样的脚本正在我的开发 MySQL 上工作。这在 MySQL 的某个版本中发生了变化吗?
    【解决方案3】:

    我遇到了这个问题,是外键问题

    点击Relation View(如下图)然后找到你要删除的字段的名称,在Foreign key constraint (INNODB)栏下,只是把选择什么都没有!表示没有外键

    希望有效!

    【讨论】:

      【解决方案4】:

      如果您尝试删除作为 FOREIGN KEY 的列,则必须找到不是列名的正确名称。例如:如果我试图删除警报表中的服务器字段,它是服务器表的外键。

      1. SHOW CREATE TABLE alarm; 查找CONSTRAINT `server_id_refs_id_34554433` FORIEGN KEY (`server_id`) REFERENCES `server` (`id`) 行。
      2. ALTER TABLE `alarm` DROP FOREIGN KEY `server_id_refs_id_34554433`;
      3. ALTER TABLE `alarm` DROP `server_id`

      这将从警报表中删除外键服务器。

      【讨论】:

        【解决方案5】:

        可能有另一个表的外键引用了您尝试更改的主键。

        要找出导致错误的表,您可以运行SHOW ENGINE INNODB STATUS,然后查看LATEST FOREIGN KEY ERROR 部分。

        【讨论】:

        • 在我的例子中,数据库是新创建的,根本没有表。
        【解决方案6】:

        要在 PHPMyAdmin 或 MySQL 中绕过这个,在重命名属性之前首先删除外键约束。

        (对于 PHPMyAdmin 用户:要删除 PHPMyAdmin 中的 FK 约束,请选择属性,然后单击表格结构下方工具栏中“打印视图”旁边的“关系视图”)

        【讨论】:

        • 我认为这是最准确的答案
        【解决方案7】:

        对于那些通过谷歌解决这个问题的人......如果您尝试重命名充当外键的字段,也会发生此错误。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-11-09
          • 2011-05-01
          • 2011-04-24
          • 1970-01-01
          • 1970-01-01
          • 2013-04-27
          • 1970-01-01
          • 2016-02-27
          相关资源
          最近更新 更多