কম্পিউটার টিউটোরিয়াল

MySQL-এ ফরেন কি (Foreign Key) এর বেসিক ধারণা

ফরেন কি ব্যবহার করে টেবিলগুলোর মধ্যে সম্পর্ক স্থাপন করা হয়। ফরেন কি সম্পর্ক এক-দ-এক (one-to-one) বা এক-দ-বহু (one-to-many) হতে পারে। একটি ফরেন কি অন্য টেবিলের অন্য একটি ফিল্ডের সাথে মিলে থাকে।

  • এক-দ-এক সম্পর্ক (One to One) - একটি টেবিলের এক রেকর্ড অন্য টেবিলের এক রেকর্ডের সাথে লিঙ্ক থাকবে।
  • এক-দ-বহু সম্পর্ক (One to Many) - একটি রেকর্ড অন্য টেবিলের একাধিক রেকর্ডের সাথে লিঙ্ক থাকবে।

উদাহরণ

প্রথমে একটি টেবিল তৈরি করব। CREATE কমান্ড ব্যবহার করে টেবিল তৈরি করা হয়।

mysql> create table tblF
-> (
-> id int,
-> FirstName varchar(100),
-> FK_PK int
-> );
Query OK, 0 rows affected (0.57 sec)

দ্বিতীয় টেবিল তৈরি:

mysql> create table tblP
-> (
-> FK_PK int,
-> LastName varchar(100),
-> primary key(FK_PK)
-> );
Query OK, 0 rows affected (0.94 sec)

ফরেন কি তৈরি করার সিনট্যাক্স

mysql> ALTER table tblF add constraint ConstFK foreign key(FK_PK) references tblP(FK_PK);
Query OK, 0 rows affected (2.17 sec)
Records: 0 Duplicates: 0 Warnings: 0

DESC কমান্ড দিয়ে ফরেন কি তৈরি হয়েছে কিনা চেক করুন:

mysql> DESC tblF;

আউটপুট:

+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id        | int(11)      | YES  |     | NULL    |       |
| FirstName | varchar(100) | YES  |     | NULL    |       |
| FK_PK     | int(11)      | YES  | MUL | NULL    |       |
+-----------+--------------+------+-----+---------+-------+
3 rows in set (0.05 sec)

Key কলামে MUL দেখাচ্ছে যে FK_PK একটি ফরেন কি (নন-ইউনিক ইন্ডেক্স)।

  1. MySQL-এ একটি স্কিমা থেকে অন্য স্কিমায় ডেটা কপি করা

  2. MySQL-এ UPDATE JOIN ব্যবহার করে অন্য টেবিল থেকে ডেটা আপডেট করা

  3. MySQL-এ ফরেন কি ব্যবহার (Using Foreign Keys in MySQL)

  4. MySQL-এ দুটি কীতে সার্চ করা