2011-08-15 66 views
8

我在嘗試刪除外鍵時遇到了一些麻煩。有人可以幫忙嗎?嘗試刪除外鍵時出錯:「ERROR 1025(HY000):」

這是我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)

我在做什麼錯?

回答

7

您有錯誤的外鍵名稱。改爲嘗試catgroup_ibfk_2

奇怪的錯誤消息已被報告爲bug in MySQL

0
[[email protected] ~]$ perror 152 
MySQL error code 152: Cannot delete a parent row 

更改InnoDB表上的索引/約束涉及刪除表並重建它。您可能需要刪除指向這些父行的另一個表上的約束,然後才能這樣做。

2

古代的帖子,但FWIW我剛剛發現外鍵的名稱是區分大小寫的...