2011-08-15 11 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; 

और है त्रुटि संदेश:

त्रुटि

यहाँ मेरी शो बनाने टेबल catgroup है 1025 (एचवाई 000): '। \ Assets_base \ catgroup' के नाम पर 'नाम पर त्रुटि। \ Assets_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 

एक इनो डीबी तालिका में इंडेक्स/बाधाओं को बदलने से तालिका छोड़ना और इसे पुनर्निर्माण करना शामिल है। इससे पहले कि आप ऐसा कर सकें, आपको इन मूल पंक्तियों को इंगित करने वाली दूसरी तालिका पर बाधा को दूर करने की आवश्यकता है।

2

प्राचीन पोस्ट, लेकिन FWIW मैं सिर्फ पता चला कि विदेशी कुंजी नाम केस संवेदी है ...

संबंधित मुद्दे