ফরেন কি তৈরি করার সিনট্যাক্স:
সিনট্যাক্স
ALTER TABLE yourSecondTableName
ADD CONSTRAINT yourConstraintName
FOREIGN KEY(yourForeignKeyColumnName)
REFERENCES yourFirstTableName(yourPrimaryKeyColumnName);
উদাহরণ দিয়ে বুঝি
১. পেরেন্ট টেবিল (Department_Table)
mysql> CREATE TABLE Department_Table (
-> Department_Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Department_Name VARCHAR(30)
-> );
Query OK, 0 rows affected (0.83 sec)
২. চাইল্ড টেবিল (Employee_Table) - ফরেন কি ছাড়া
mysql> CREATE TABLE Employee_Table (
-> EmployeeID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeName VARCHAR(80),
-> Job VARCHAR(30),
-> Department_Id INT NOT NULL REFERENCES department(departmentID)
-> );
Query OK, 0 rows affected (1.12 sec)
নোট: উপরের REFERENCES department(departmentID) শুধু কমেন্টের মতো কাজ করে, আসলে ফরেন কি তৈরি হয় না।
৩. সঠিক পদ্ধতিতে ফরেন কি যোগ করুন
mysql> ALTER TABLE Employee_Table
-> ADD CONSTRAINT fk_Department_Id
-> FOREIGN KEY(Department_Id)
-> REFERENCES Department_Table(Department_Id);
Query OK, 0 rows affected (2.82 sec)
Records: 0 Duplicates: 0 Warnings: 0
গুরুত্বপূর্ণ পয়েন্টস
- ফরেন কি কলাম এবং রেফারেন্স কলামের ডেটা টাইপ একই হতে হবে
- পেরেন্ট টেবিলের কলাম PRIMARY KEY বা UNIQUE INDEX হতে হবে
- InnoDB স্টোরেজ ইঞ্জিন ফরেন কি সাপোর্ট করে (MyISAM নয়)
ON DELETE CASCADE,ON UPDATE CASCADEঅপশন যোগ করা যায়