जब आपको यह अस्पष्ट त्रुटि संदेश मिलता है, तो आप
. चलाकर अधिक विशिष्ट त्रुटि का पता लगा सकते हैंSHOW ENGINE INNODB STATUS;
सबसे आम कारण यह है कि विदेशी कुंजी बनाते समय, संदर्भित फ़ील्ड और विदेशी कुंजी फ़ील्ड दोनों का मिलान होना चाहिए:
- इंजन वही होना चाहिए उदा. InnoDB
- डेटाटाइप समान होना चाहिए, और समान लंबाई का होना चाहिए।
उदा. VARCHAR(20) या INT(10) अहस्ताक्षरित - संयोजन एक ही होना चाहिए। उदा. utf8
- अद्वितीय - विदेशी कुंजी को उस फ़ील्ड को संदर्भित करना चाहिए जो अद्वितीय है (आमतौर पर निजी) संदर्भ तालिका में।
इस त्रुटि का एक अन्य कारण यह है:
आपने एक SET NULL शर्त परिभाषित की है, हालांकि कुछ स्तंभों को NOT NULL के रूप में परिभाषित किया गया है।