समस्या निवारण: "विदेशी कुंजी बाधा में प्रयुक्त कॉलम को नहीं बदला जा सकता" त्रुटि का समाधान
किसी तालिका को संशोधित करने का प्रयास करते समय, आपको इसका सामना करना पड़ सकता है त्रुटि "कॉलम 'कॉलम_नाम' नहीं बदल सकता: एक विदेशी कुंजी बाधा में प्रयुक्त"। यह त्रुटि इंगित करती है कि कॉलम एक विदेशी कुंजी बाधा में संदर्भित है, और इसे बदलने से डेटाबेस की संदर्भात्मक अखंडता टूट जाएगी।
इस समस्या को हल करने के लिए, आप इन चरणों का पालन कर सकते हैं:
1. त्रुटि को समझना:
त्रुटि संदेश महत्वपूर्ण जानकारी के दो टुकड़े प्रदान करता है:
2. क्रिएट टेबल स्टेटमेंट की जांच करना:
विदेशी कुंजी बाधा और उसके विवरण की पहचान करने के लिए मूल क्रिएट टेबल स्टेटमेंट की जांच करें। दिए गए परिदृश्य में, बाधा को "fk_fav_food_person_id" नाम दिया गया है, और यह "favourite_food" तालिका में "person_id" कॉलम को संदर्भित करता है।
3. विदेशी कुंजी जांच अक्षम करना (सावधान!):
किसी विदेशी कुंजी बाधा में शामिल कॉलम को संशोधित करने के लिए, आप अस्थायी रूप से विदेशी कुंजी जांच अक्षम कर सकते हैं। यह एक संभावित खतरनाक ऑपरेशन है, इसलिए सावधानी बरतना और अपने डेटाबेस का बैकअप रखना महत्वपूर्ण है। विदेशी कुंजी जांच को अक्षम करने के लिए, निम्नलिखित कथन का उपयोग करें:
SET FOREIGN_KEY_CHECKS = 0;
4. परिवर्तन करना:
एक बार विदेशी कुंजी जांच अक्षम हो जाने पर, आप वांछित परिवर्तन के साथ आगे बढ़ सकते हैं। प्रदान किए गए उदाहरण में, व्यक्ति_आईडी कॉलम को अब निम्नलिखित कथन का उपयोग करके एक ऑटो-वृद्धि मान में संशोधित किया जा सकता है:
ALTER TABLE person MODIFY person_id SMALLINT UNSIGNED AUTO_INCREMENT;
5। विदेशी कुंजी जांच को पुन: सक्षम करना:
आवश्यक परिवर्तन करने के बाद, अपने डेटाबेस की अखंडता बनाए रखने के लिए विदेशी कुंजी जांच को फिर से सक्षम करना सुनिश्चित करें:
SET FOREIGN_KEY_CHECKS = 1;
चेतावनी नोट:
यह महत्वपूर्ण है याद रखें कि अगर सावधानी से नहीं संभाला गया तो विदेशी कुंजी जांच को अक्षम करने के गंभीर परिणाम हो सकते हैं। यदि विदेशी कुंजी संबंधों में शामिल तालिकाओं में पंक्तियों को जोड़ा या हटाया जाता है, तो डेटा अखंडता से समझौता किया जा सकता है। इसलिए, उत्पादन प्रणालियों में तैनात करने से पहले विकास परिवेश में परिवर्तनों का पूरी तरह से परीक्षण करना महत्वपूर्ण है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3