त्रुटि 1452 को समझने के लिए, पहले हमें एक तालिका बनानी होगी और एक विदेशी कुंजी बाधा की मदद से उसे दूसरी तालिका से जोड़ना होगा।
पहली तालिका बनाना -
mysql> क्रिएट टेबल फॉरेनटेबल-> (-> id int,-> name varchar(200),-> Fk_pk int-> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.43 सेकंड)
पहली तालिका को सफलतापूर्वक बनाने के बाद, हम दूसरी तालिका बनाएंगे -
mysql> क्रिएट टेबल प्राइमरीटेबल1-> (-> Fk_pk int,-> DeptName varchar(200),-> Primary key(Fk_pk)-> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.48 सेकंड)
अब, हमने दोनों टेबल बना लिए हैं। फिर दोनों टेबल अल्टरकमांड की मदद से संबंधित हैं और साथ ही विदेशी कुंजी बाधा भी जोड़ रहे हैं। वाक्य रचना इस प्रकार है -
तालिका बदलें yourFirstTable किसी भी बाधा जोड़ेंConstraintName विदेशी कुंजी (कॉलम_नाम जो दूसरी तालिका में विदेशी कुंजी है) yourSecondTable(column_name जो दूसरी तालिका में प्राथमिक कुंजी का कार्य करता है)।
अब, उपरोक्त क्वेरी का उपयोग दोनों तालिकाओं को जोड़ने के लिए किया जाता है। यह इस प्रकार दिया गया है -
mysql> तालिका में बदलाव करें विदेशी तालिका में बाधा जोड़ेंFKPK विदेशी कुंजी(Fk_pk) संदर्भप्राथमिकतालिका1(Fk_pk);क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (1.57 सेकंड)रिकॉर्ड:0 डुप्लिकेट:0 चेतावनियाँ:0
अब, दोनों टेबल संबंधित हैं। रिकॉर्ड 'विदेशी तालिका' तालिका में इस प्रकार डाले गए हैं -
mysql> INSERT इन फॉरेनटेबल वैल्यू(1,'जॉन',1);
इसके परिणामस्वरूप एक त्रुटि होती है जो नीचे दिए गए आउटपुट में दिखाई जाती है -
त्रुटि 1452 (23000):चाइल्ड पंक्ति को जोड़ या अपडेट नहीं कर सकता:एक विदेशी कुंजी बाधा विफल (`व्यवसाय`। ))
उपरोक्त आउटपुट में, हमें त्रुटि मिल रही है 'चाइल्ड रो को जोड़ या अपडेट नहीं कर सकता:एक विदेशी कुंजी बाधा विफल'। हम नीचे दिखाए गए अनुसार प्राथमिक तालिका 1 तालिका में रिकॉर्ड डालने से इस त्रुटि को दूर कर सकते हैं -
mysql> प्राथमिकTable1 मानों में सम्मिलित करें(1,'ComputerScience');क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.14 सेकंड)
प्राथमिक तालिका 1 तालिका में रिकॉर्ड डालने के बाद, हम बिना किसी त्रुटि के तालिका विदेशी तालिका में आवश्यक रिकॉर्ड सम्मिलित कर सकते हैं। यह नीचे दिखाया गया है -
mysql> INSERT इन फॉरेनटेबल वैल्यू (1,'जॉन',1);क्वेरी ओके, 1 पंक्ति प्रभावित (0.13 सेकंड)
अब, हम सेलेक्ट कमांड की मदद से फॉरेनटेबल के टेबल रिकॉर्ड्स को प्रदर्शित कर सकते हैं, जो इस प्रकार है -
mysql> फॉरेनटेबल से * चुनें;
उपरोक्त क्वेरी का आउटपुट है -
<पूर्व>+----------+----------+----------+| आईडी | नाम | Fk_pk |+----------+----------+----------+| 1 | जॉन | 1 |+------+------+----------+1 पंक्ति सेट (0.00 सेकंड) मेंहम सेलेक्ट कमांड की मदद से प्राइमरीटेबल1 के टेबल रिकॉर्ड्स भी प्रदर्शित कर सकते हैं, जो इस प्रकार है -
mysql> प्राइमरीटेबल1 से * चुनें;
उपरोक्त क्वेरी का आउटपुट है -
<पूर्व>+----------+-----------------+| Fk_pk | विभाग का नाम |+----------+-----------------+| 1 | कंप्यूटर साइंस |+----------+-----------------+1 पंक्ति सेट में (0.00 सेकंड)त्रुटि 1452 - चाइल्ड रो को जोड़ या अपडेट नहीं कर सकता:जब डेटा रिकॉर्ड को शुरू में फॉरेनटेबल में डाला जाता है तो एक विदेशी कुंजी बाधा विफल हो जाती है।
ध्यान दें:सबसे पहले, उपरोक्त त्रुटि से बचने के लिए रिकॉर्ड को दूसरी तालिका यानी प्राइमरीटेबल1 में जोड़ें।