ফরেন কি: টেবিল間 আংশিক সম্পর্ক বজায় রাখা
Foreign Key একটি কনস্ট্রেইন্ট যা দুটি টেবিলের মধ্যে রেফারেনশিয়াল ইন্টিগ্রিটি নিশ্চিত করে। ফরেন কি ধারণকারী টেবিল = Child Table, রেফারেন্স দেওয়া টেবিল = Parent Table।
চাইল্ড ও প্যারেন্ট টেবিল তৈরি
mysql> CREATE TABLE StudentEnrollment (
-> StudentId INT, StudentName VARCHAR(200), StudentFKPK INT
-> );
mysql> CREATE TABLE College (
-> StudentFKPK INT, CourseId INT, CourseName VARCHAR(200), CollegeName VARCHAR(200),
-> PRIMARY KEY (StudentFKPK)
-> );
ফরেন কি যোগ করা (ALTER TABLE)
mysql> ALTER TABLE StudentEnrollment
-> ADD CONSTRAINT StudCollegeConst
-> FOREIGN KEY (StudentFKPK) REFERENCES College(StudentFKPK);
Query OK, 0 rows affected (1.78 sec)
ফরেন কি যাচাই করা
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 | +-------------------+-------------+------------------+-----------------------+------------------------+
মहত্ব: প্যারেন্ট টেবিলে মিলে যাওয়া প্রাইমারি কী না থাকলে চাইল্ড টেবিলে ইনসার্ট/আপডেট রিজেক্ট হবে (Error 1452)।