MySQL का उपयोग करके एक तालिका बनाने का प्रयास करते समय, आपको त्रुटि 1022 का सामना करना पड़ता है: "लिख नहीं सकता; डुप्लिकेट कुंजी तालिका में।" अजीब पहलू यह है कि तालिका केवल एक कुंजी को परिभाषित करती है, लेकिन त्रुटि बनी रहती है।
जांच करने पर, ऐसा प्रतीत होता है कि तालिका परिभाषा के भीतर एक विशिष्ट स्निपेट त्रुटि को ट्रिगर करता है:
CONSTRAINT `error_id`
FOREIGN KEY (`error_id` )
REFERENCES `mydb`.`errors` (`error_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
जबकि समान विदेशी कुंजी परिभाषाएँ बिना किसी समस्या के अन्य तालिकाओं में मौजूद हैं, समस्या विदेशी कुंजी के नाम में है: error_id.
मूल कारण:
समस्या इसलिए उत्पन्न होती है क्योंकि एक विदेशी कुंजी नाम संपूर्ण डेटाबेस मॉडल के भीतर किसी अन्य विदेशी कुंजी नाम के समान नहीं हो सकता है। इसका मतलब यह है कि यदि दो तालिकाएँ एक ही तालिका को संदर्भित करती हैं, तो प्रत्येक तालिका में विदेशी कुंजियों के अद्वितीय नाम होने चाहिए।
समाधान:
त्रुटि को हल करने के लिए, बस दें प्रश्न में विदेशी कुंजी एक अलग नाम है। उदाहरण के लिए, आप इसे fk_error_id नाम दे सकते हैं। यह इसे मॉडल में किसी भी अन्य विदेशी कुंजी से अलग करेगा और MySQL को सफलतापूर्वक तालिका बनाने की अनुमति देगा।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3