आइए समझते हैं कि MySQL में विदेशी कुंजी का उपयोग कैसे किया जा सकता है:
InnoDB टेबल विदेशी कुंजी कंस्ट्रेंट जांच का समर्थन करते हैं। दो टेबल को जोड़ने के लिए केवल एक विदेशी कुंजी कंस्ट्रेंट आवश्यक नहीं है। इसका उपयोग स्टोरेज इंजन के अलावा InnoDB के लिए उपयोग किए जाने वाले कॉलम को परिभाषित करते समय किया जा सकता है। REFERENCES tableName(colName) का कोई वास्तविक प्रभाव नहीं होता है और उपयोगकर्ता के लिए एक कमेंट के रूप में कार्य करता है कि वर्तमान में परिभाषित किया जा रहा कॉलम किसी अन्य टेबल में कॉलम को संदर्भित करने के लिए अभिप्रेत है।
MySQL यह जांचने के लिए कोई जांच नहीं करता है कि 'colName' वास्तव में 'tableName' में मौजूद है या नहीं या 'tableName' वास्तव में मौजूद है या नहीं।
पैरेंट टेबल में, विदेशी कुंजी प्राथमिक कुंजी के रूप में कार्य करेगी। आइए एक टेबल बनाने का उदाहरण देखें।
चाइल्ड टेबल बनाना
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);