आपको विदेशी कुंजी नाम के साथ प्रयास करना चाहिए क्योंकि फहीम पार्कर ने सुझाव दिया था। असल में यह हमेशा काम नहीं करता है।
मेरे मामले में मैं निर्माण से FK जोड़ने के लिए
FOREIGN KEY `fk`(`col1`) REFERENCES `table2`(`col1`)
कोड का इस्तेमाल किया।
इस कोड के साथ समस्या यह मान्य नहीं है और इसे किसी प्रकार की वाक्यविन्यास त्रुटि फेंकनी चाहिए, लेकिन फिर भी यह एक यादृच्छिक नाम के साथ एक विदेशी कुंजी जोड़ दी गई है।
जब मैं सही वाक्य रचना के साथ FK कहा:
CONSTRAINT `fk` FOREIGN KEY (`col1`) REFERENCES `table2`(`col1`)
निम्नलिखित कोड यह ठीक से गिरा:
ALTER TABLE `table1` DROP FOREIGN KEY `fk`
तो त्रुटि इस तरह का भी हो सकता है अगर आप एक विदेशी दूर करने की कोशिश एक अवैध नाम के साथ कुंजी।
SHOW CREATE TABLE `table1`
के साथ तालिका गुणों को देखना महत्वपूर्ण है और यदि आपको इस तरह की त्रुटियां मिलती हैं तो विदेशी कुंजी नामों की जांच करें।
यह आपको को समझने में मदद कर सकता है http://stackoverflow.com/questions/160233/what-does-mysql-error-1025-hy000-error-on-rename-of-foo-errorno-150-me – Imdad
@Imdad यह लिंक एक और त्रुटि का वर्णन करता है - (errno: 150) – Devart
इसे आज़माएं। नई तालिका बनाएं (विदेशी कुंजी बाधा के बिना)। डेटा को नई तालिका में कॉपी करें (new_table SELECT * पुराने_टेबल से वाक्यविन्यास INSERT का उपयोग करके) पुरानी तालिका – Imdad