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

MySQL में फॉरेन कीज़ की मूल बातें?


फॉरेन कीज़ एक प्रकार का कंस्ट्रेंट है जिसका उपयोग टेबल्स के बीच इंटीग्रिटी बनाए रखने के लिए किया जाता है। यदि हम किसी टेबल के लिए फॉरेन की बनाते हैं, तो इस टेबल को चाइल्ड टेबल कहा जाता है जबकि दूसरी टेबल को पैरेंट टेबल कहा जाएगा।

पैरेंट टेबल में, फॉरेन की प्राइमरी की के रूप में कार्य करेगी। आइए एक टेबल बनाते हैं।

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

mysql> create table StudentEnrollment 
-> ( 
-> StudentId int, 
-> StudentName varchar(200), 
-> StudentFKPK int 
-> ); 
Query OK, 0 rows affected (0.91 sec)

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

mysql> create table College 
-> ( 
-> StudentFKPK int, 
-> CourseId int, 
-> CourseName varchar(200), 
-> CollegeName varchar(200), 
-> primary key(StudentFKPK) 
-> ); 
Query OK, 0 rows affected (0.46 sec)

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

फॉरेन की जोड़ने का सिंटैक्स निम्न है।

ALTER TABLE yourChildTableName 
ADD CONSTRAINT anyConstraintName 
FOREIGN KEY(primary key column name for parent table) 
REFERENCES College(primary key column name for parent table);

उपरोक्त सिंटैक्स का निम्न क्वेरी में इम्प्लीमेंटेशन है।

mysql> alter table StudentEnrollment 
add constraint StudCollegeConst 
foreign key(StudentFKPK) references College(StudentFKPK); 
Query OK, 0 rows affected (1.78 sec) 
Records: 0 Duplicates: 0 Warnings: 0

चेक करने का सिंटैक्स कि फॉरेन की कंस्ट्रेंट मौजूद है।

SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, 
REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME 
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
WHERE REFERENCED_TABLE_NAME = 'yourParentTableName or your referencedTableName';

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

mysql> SELECT 
-> TABLE_NAME, 
-> COLUMN_NAME, 
-> CONSTRAINT_NAME, 
-> REFERENCED_TABLE_NAME, 
-> REFERENCED_COLUMN_NAME 
-> FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
-> WHERE 
-> REFERENCED_TABLE_NAME = 'College';

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

+-------------------+-------------+------------------+-----------------------+------------------------+
| TABLE_NAME        | COLUMN_NAME | CONSTRAINT_NAME  | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME |
+-------------------+-------------+------------------+-----------------------+------------------------+
| StudentEnrollment | StudentFKPK | StudCollegeConst | College               | StudentFKPK            |
+-------------------+-------------+------------------+-----------------------+------------------------+
1 row in set, 2 warnings (0.03 sec)

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


  1. - MySQL में रिकॉर्ड हटाने के बाद कुंजियों को पुनः क्रमबद्ध करना

    DELETE के बाद आईडी अनुक्रम ठीक करना पंक्ति हटाने के बाद आईडी में अंतर आ जाता है। UPDATE के साथ गणितीय गणना करके आईडी को पुनः क्रमबद्ध किया जा सकता है। तालिका और डेटा INSERT INTO DemoTable1476 VALUES(10), (20), (30), (40); आईडी 30 हटाना DELETE FROM DemoTable1476 WHERE Id = 30; हटाने के बाद (अं

  1. - MySQL में प्राइमरी की को कई टेबल में फॉरेन की के रूप में कैसे रेफ़र करें?

    ALTER TABLE ... ADD CONSTRAINT alter table yourSecondTableName add constraint `yourConstraintName` foreign key(`yourSecondTableNamePrimaryKey`) references yourFirstTableName(yourFirstTablePrimaryKeyColumnName); उदाहरण alter table demo66 add constraint `id_fk` foreign key(`user_id`) references

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

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