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

MySQL-এ প্রাইমারি কীকে অন্য টেবিলে ফরেন কী হিসেবে রেফার করা

MySQL-এ একটি টেবিলের প্রাইমারি কীকে অন্য টেবিলের ফরেন কী হিসেবে রেফার করতে ALTER TABLE ... ADD CONSTRAINT ... FOREIGN KEY ব্যবহার করা হয়।

সিনট্যাক্স

ALTER TABLE yourSecondTableName
ADD CONSTRAINT `yourConstraintName`
FOREIGN KEY (`yourSecondTablePrimaryKey`)
REFERENCES yourFirstTableName(yourFirstTablePrimaryKeyColumnName);

উদাহরণ

প্রথম টেবিল (demo65):

CREATE TABLE demo65 (
    id INT NOT NULL PRIMARY KEY,
    name VARCHAR(20)
);

দ্বিতীয় টেবিল (demo66):

CREATE TABLE demo66 (
    user_id INT NOT NULL PRIMARY KEY,
    address VARCHAR(200)
);

ফরেন কী যোগ করা

ALTER TABLE demo66
ADD CONSTRAINT `id_fk`
FOREIGN KEY (`user_id`)
REFERENCES demo65(id);

যাচাই করা

SHOW CREATE TABLE demo66;

আউটপুট

+--------+-----------------------------------------------------------------------------------------------------------------------------------+
| Table  | Create Table                                                                                                                      |
+--------+-----------------------------------------------------------------------------------------------------------------------------------+
| demo66 | CREATE TABLE `demo66` ( `user_id` int NOT NULL, `address` varchar(200) DEFAULT NULL, PRIMARY KEY (`user_id`), CONSTRAINT `id_fk` FOREIGN KEY (`user_id`) REFERENCES `demo65` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+--------+-----------------------------------------------------------------------------------------------------------------------------------+

ব্যাখ্যা:

  • CONSTRAINT `id_fk` - কনস্ট্রেইন্টের নাম (ঐচ্ছিক, অটো জেনারেট হয় যদি না দিন)।
  • FOREIGN KEY (`user_id`) - demo66 টেবিলের কলাম।
  • REFERENCES demo65(id) - demo65 টেবিলের প্রাইমারি কী কলাম।
  • উভয় কলাম একই ডেটা টাইপের হতে হবে (এখানে INT)।
  • InnoDB স্টোরেজ ইঞ্জিন ফরেন কী সাপোর্ট করে।

এটি রেফারেনশিয়াল ইন্টিগ্রিটি নিশ্চিত করে: demo66-এ এমন user_id ইনসার্ট করা যাবে না যা demo65-এ নেই।

  1. MySQL-এ ক্যান্ডিডেট কি (Candidate Key) বাস্তবায়ন করা

  2. MySQL에서 기본 키(Primary Key) 삭제하기

  3. MySQL-এ INFORMATION_SCHEMA ব্যবহার করে কোন কলাম PRIMARY KEY সেটা যাচাই করা

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