尝试删除外键时出错:“ERROR 1025(HY000):”

时间:2011-08-15 08:23:41

标签: mysql foreign-keys

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

这是我的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;

这是错误信息:

  

错误1025(HY000):将“。\ asset_base \ catgroup”重命名为“时出错”   ” \ asset_base \

     

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

我做错了什么?

3 个答案:

答案 0 :(得分:7)

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

奇怪的错误消息已报告为bug in MySQL

答案 1 :(得分:2)

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

答案 2 :(得分:0)

[admin@gold ~]$ perror 152
MySQL error code 152: Cannot delete a parent row

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