【问题标题】:Error when trying to DELETE foreign key: “ERROR 1025 (HY000):”尝试删除外键时出错:“ERROR 1025 (HY000):”
【发布时间】:2011-10-27 03:14:09
【问题描述】:

我在尝试删除外键时遇到了一些麻烦。有人可以帮忙吗?

这是我的 SHOW CREATE TABLE catgroup:

| catgroup | CREATE TABLE `catgroup` (
  `catgroupid` int(11) NOT NULL AUTO_INCREMENT,
  `category_id` int(11) NOT NULL,
  `group_id` int(11) NOT NULL,
  PRIMARY KEY (`catgroupid`),
  KEY `category_id` (`category_id`),
  KEY `group_id` (`group_id`),
  CONSTRAINT `catgroup_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `cat
s` (`cid`) ON UPDATE CASCADE,
  CONSTRAINT `catgroup_ibfk_2` FOREIGN KEY (`group_id`) REFERENCES `groups
d`) ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 |

这就是我尝试删除外键的方式:

ALTER TABLE catgroup DROP FOREIGN KEY group_id_ibfk_2;

这是错误信息:

ERROR 1025 (HY000): 重命名 '.\asset_base\catgroup' 时出错 '.\asset_base\

sql2-16b4-4'(错误号:152)

我做错了什么?

【问题讨论】:

    标签: mysql foreign-keys


    【解决方案1】:

    您的外键名称错误。请改用catgroup_ibfk_2

    奇怪的错误信息已经被报告为bug in MySQL

    【讨论】:

      【解决方案2】:

      古老的帖子,但是FWIW我刚刚发现外键名称区分大小写...

      【讨论】:

        【解决方案3】:
        [admin@gold ~]$ perror 152
        MySQL error code 152: Cannot delete a parent row
        

        更改 InnoDB 表上的索引/约束涉及删除表并重建它。您可能需要先删除指向这些父行的其他表的约束,然后才能执行此操作。

        【讨论】:

          猜你喜欢
          • 2013-04-27
          • 1970-01-01
          • 2011-04-24
          • 1970-01-01
          • 2018-10-04
          • 1970-01-01
          • 1970-01-01
          • 2018-03-27
          • 1970-01-01
          相关资源
          最近更新 更多