2011-10-04 17 views
5

InnoDB का उपयोग करके MySQL के साथ समस्याएं और एक अप्रयुक्त, विदेशी कुंजी को छोड़ना। विदेशी कुंजी किसी अन्य तालिका की आईडी का संदर्भ देता है। हालांकि, मुझे इस क्षेत्र की आवश्यकता नहीं है।MySQL ड्रॉप फ़ील्ड; विदेशी कुंजी errorno 150

मैंने एफके इंडेक्स को हटाने का प्रयास किया है, जो काम नहीं करता - कहता है कि यह एक विदेशी कुंजी contraint में आवश्यक है। और क्षेत्र है, जो मुझे एक त्रुटि देता है को हटाने:

1025 - त्रुटि './axis/Schedule' को './axis/#sql-ad8_1531' का नाम बदलने पर (errno: 150)

तालिका वर्तमान में खाली है इस क्षेत्र का संदर्भ देने वाली कोई सारणी नहीं है। इस से छुटकारा पाने के बारे में कोई विचार? एक नई टेबल बनाने के अलावा?

यदि मैं नीचे दी गई त्रुटि को सही तरीके से पढ़ रहा हूं, तो मैं कॉलम ड्रॉप नहीं कर सकता क्योंकि एफके इंडेक्स घोषित किया गया है। और मैं इंडेक्स नहीं छोड़ सकता, क्योंकि कॉलम मौजूद है। चिकन & अंडा ??

नवीनतम विदेशी कुंजी त्रुटि 111,004 तालिका धुरी/अनुसूची के विदेशी कुंजी बाधा में 17:05:40 त्रुटि: तालिका जो पहले स्तंभ के रूप में कॉलम, या में डेटा प्रकार होते हैं में कोई सूचकांक नहीं है तालिका संदर्भित तालिका या ON में से किसी एक से मेल नहीं खाती है ... सेट न्यूल कॉलम को पूर्ण नहीं घोषित किया जाता है। बाधा: , CONSTRAINT "fk_Schedule_Grp" विदेशी कुंजी ("idGrp") संदर्भ "ग्रुप" ("idGrp") अद्यतन पर कोई कार्रवाई नहीं हटाएं कोई कार्रवाई InnoDB: तालिका axis का नाम बदलना। axis पर। Schedule असफल रहा!

उत्तर

14

आप का उपयोग करने के

ALTER TABLE table_name DROP FOREIGN KEY constraint_name 

यहाँ constraint_name बजाय सूचकांक बाधा का नाम है की जरूरत है। यदि आपको नहीं पता कि यह क्या है, तो आप SHOW CREATE TABLE जारी करके पता लगा सकते हैं। यह पहचानकर्ता है जो CONSTRAINT शब्द के बाद प्रकट होता है।

संपादित करें: सवाल का इसके अलावा, यह है कि आप जारी करने की आवश्यकता

ALTER TABLE table_name DROP FOREIGN KEY fk_Schedule_Grp 
+0

आप कमाल कर रहे हैं, मेरा मानना ​​है कि मैं बाधा के साथ सूचकांक भ्रामक था लग रहा है। यह तीनों से छुटकारा पाने में एक आकर्षण की तरह काम किया। धन्यवाद! –

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