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