2011-04-08 18 views
5

inno_db इंजन के साथ मेरी mysql DB पर के साथ एक स्तंभ गिराने,एक विदेशी कुंजी

मैं एक विदेशी कुंजी के साथ एक मेज है। सामान्य त्रुटि:: 1025 त्रुटि पर बस इसे एक त्रुटि पैदावार गिर

अब, - मैं स्तंभ ड्रॉप करना चाहते हैं (मैं पूरे स्तंभ की जरूरत नहीं है विदेशी कुंजी और निश्चित रूप से जुड़े सूचकांक के साथ!) '। \ road_dmy # sql-19d8_2be' to '। \ road_dmy \ contact' (errno: 150)

ऐसा लगता है कि यह एक ज्ञात समस्या है। http://bugs.mysql.com/bug.php?id=15317

लेकिन वैसे भी, मुझे इस कॉलम को छोड़ने के लिए क्या करना चाहिए? मैं बहुत यकीन है कि कोई भी इस अन्यथा

db का उपयोग होगा यह संभव है कर रहा हूँ (और b.t.w. मैं कैसे रहस्यमय त्रुटि संदेश का सच विवरण ऊपर पता कर सकते हैं?)

+0

आप पहली कुंजी ड्रॉप करना होगा। 'शो बनाने तालिका संपर्क' आदेश के परिणाम पोस्ट करें; और हम आपको सटीक आदेश देने में सक्षम होंगे। – Asaph

+0

हां, बस कुंजी को छोड़ने से पहले नौकरी हुई। – shealtiel

+0

कृपया प्रश्न शीर्षक में टैग न लिखें। –

उत्तर

5

आप पहली कुंजी ड्रॉप करना होगा। मुझे आपकी टेबल के नाम नहीं पता लेकिन मैं आपको उदाहरण के अनुसार सामान्य रणनीति दूंगा। मान लीजिए आप निम्नलिखित 2 InnoDB टेबल है:

CREATE TABLE `A` (
    `id` int(10) unsigned NOT NULL auto_increment, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB; 

CREATE TABLE `B` (
    `id` int(10) unsigned NOT NULL auto_increment, 
    `a_id` int(10) unsigned NOT NULL, 
    PRIMARY KEY (`id`), 
    KEY `a_id` (`a_id`), 
    CONSTRAINT `b_ibfk_1` FOREIGN KEY (`a_id`) REFERENCES `a` (`id`) 
) ENGINE=InnoDB; 

आप निम्न आदेश का उपयोग कर तालिका B में a_id स्तंभ ड्रॉप कर सकते हैं:

alter table B drop foreign key b_ibfk_1, drop column a_id;