2011-08-15 9 views
8

外部キーを削除しようとすると何か問題が発生しています。誰かが助けてくれますか?これは私が外部キードロップしようとしている方法です外部キーを削除しようとするとエラーが発生します: "ERROR 1025(HY000):"

| 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

ここに私のSHOWは、表catgroupをCREATEです1025(HY000): '。\ asset_base \ catgroup'の名前が 'に変更されました。\ asset_base \

sql2-16b4-4' (errnoに: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の外来キー名が大文字と小文字を区別していることを発見しました。

関連する問題