Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

MySQL में विदेशी कुंजी की मूल बातें?

<घंटा/>

विदेशी कुंजी एक प्रकार की बाधा है जिसका उपयोग तालिकाओं के बीच अखंडता बनाए रखने के लिए किया जा सकता है। यदि हम किसी तालिका के लिए एक विदेशी कुंजी बनाते हैं, तो इस तालिका को चाइल्ड टेबल कहा जाता है जबकि दूसरी तालिका को पैरेंट टेबल कहा जाता है।

मूल तालिका में, विदेशी कुंजी प्राथमिक कुंजी के रूप में कार्य करेगी। चलिए एक टेबल बनाते हैं।

चाइल्ड टेबल बनाना।

mysql> टेबल बनाएं StudentEnrollment -> ( -> StudentId int, -> StudentName varchar(200), -> StudentFKPK int -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.91 सेकंड)

पैरेंट टेबल बनाना

mysql> टेबल बनाएं कॉलेज -> (-> StudentFKPK int, -> CourseId int, -> CourseName varchar(200), -> CollegeName varchar(200), -> Primary key(StudentFKPK) -> );क्वेरी ओके , 0 पंक्तियाँ प्रभावित (0.46 सेकंड)

पैरेंट टेबल में, 'StudentFKPK' कॉलम एक प्राथमिक कुंजी है। हम विदेशी कुंजी जोड़ने के लिए ALTER कमांड का उपयोग करेंगे।

विदेशी कुंजी जोड़ने के लिए सिंटैक्स निम्नलिखित है।

तालिका बदलें yourChildTableName कोई भी बाधा जोड़ेंConstraintNameविदेशी कुंजी (पैरेंट टेबल के लिए प्राथमिक कुंजी कॉलम नाम) संदर्भ कॉलेज (पैरेंट टेबल के लिए प्राथमिक कुंजी कॉलम नाम);

नीचे दी गई क्वेरी में उपरोक्त सिंटैक्स का कार्यान्वयन निम्नलिखित है।

mysql> तालिका बदलें छात्र नामांकन बाधा जोड़ें StudCollegeConst विदेशी कुंजी (StudentFKPK) संदर्भ कॉलेज (छात्रFKPK); क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (1.78 सेकंड) रिकॉर्ड:0 डुप्लिकेट:0 चेतावनियाँ:0

विदेशी कुंजी बाधा मौजूद है या नहीं यह जांचने के लिए सिंटेक्स।

 INFORMATION_SCHEMA से TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NA का चयन करें। 

ऊपर दिए गए सिंटैक्स को नीचे दी गई क्वेरी में लागू किया गया है।

mysql> चुनें -> TABLE_NAME, -> COLUMN_NAME, -> CONSTRAINT_NAME, -> REFERENCED_TABLE_NAME, -> REFERENCED_COLUMN_NAME -> FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE -> WHERE -> REFERENCED_TABLE_NAME ='कॉलेज' 

यहाँ आउटपुट है।

<पूर्व>+---------------------+----------------+--------------- ------+---------------+---------------------------- -----+| TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME |+---------------------+---------------+------------- -----+--------------------------+--------------- ----+| छात्र नामांकन | छात्रएफकेपीके | स्टडकॉलेजकॉन्स्ट | कॉलेज | छात्रएफकेपीके |+-------------------+----------------+--------------- -----+--------------------------+--------------- ----+1 पंक्ति सेट में, 2 चेतावनियां (0.03 सेकंड)

हमारे पास StudentFKPK नाम का एक कॉलम है और CONSTRAINT_NAME StudCollegeConst है।


  1. MySQL तालिका से रिकॉर्ड हटाने के बाद कुंजियों को पुन:व्यवस्थित करें?

    इसके लिए कुछ गणितीय गणनाओं के साथ UPDATE कमांड का उपयोग करें। किसी आईडी को हटाने के लिए, DELETE का उपयोग करें। आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.81 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1476 मान (40) में डालें; क्वेरी ठीक है, 1 पंक्ति

  1. MySQL में विभिन्न तालिका में प्राथमिक कुंजी को विदेशी के रूप में कैसे संदर्भित करें?

    निम्नलिखित वाक्य रचना है - तालिका में बदलाव करें, yourSecondTableNameजोड़ें बाधा `yourConstraintName`विदेशी कुंजी(`yourSecondTableNamePrimaryKey`) संदर्भ yourFirstTableName(yourFirstTablePrimaryKeyColumnName); ऊपर दिए गए सिंटैक्स को समझने के लिए, आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ

  1. MySQL में विदेशी कुंजी का उपयोग करना

    आइए समझें कि MySQL में विदेशी कुंजियों का उपयोग कैसे किया जा सकता है - InnoDB तालिकाएँ विदेशी कुंजी बाधाओं की जाँच का समर्थन करती हैं। केवल दो तालिकाओं में शामिल होने के लिए एक विदेशी कुंजी बाधा की आवश्यकता नहीं है। इसका उपयोग एक कॉलम को परिभाषित करते समय किया जा सकता है जिसका उपयोग इनो डीबी के अला