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

MySQL এরর 1452: ফরেন কি কনস্ট্রেইন্ট ফেইল (চাইল্ড রো অ্যাড/আপডেট)

এই এরর আসে যখন ফরেন কি কনস্ট্রেইন্ট লঙ্ঘন করে চাইল্ড টেবিলে ডেটা ইনসার্ট করার চেষ্টা করা হয়।

উদাহরণ

mysql> CREATE TABLE ForeignTable (id int, name varchar(200), Fk_pk int);
mysql> CREATE TABLE PrimaryTable1 (Fk_pk int, DeptName varchar(200), PRIMARY KEY(Fk_pk));
mysql> ALTER TABLE ForeignTable ADD CONSTRAINT constFKPK FOREIGN KEY(Fk_pk) REFERENCES PrimaryTable1(Fk_pk);

এরর তৈরি

mysql> INSERT INTO ForeignTable VALUES(1,'John',1);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`business`.`foreigntable`, CONSTRAINT `constFKPK` FOREIGN KEY (`Fk_pk`) REFERENCES `primarytable1` (`fk_pk`))

কারণ: PrimaryTable1-এ Fk_pk=1 নেই।

সমাধান

mysql> INSERT INTO PrimaryTable1 VALUES(1,'ComputerScience');
Query OK, 1 row affected (0.14 sec)

mysql> INSERT INTO ForeignTable VALUES(1,'John',1);
Query OK, 1 row affected (0.13 sec)

নियम: পেরেন্ট টেবিলে ডেটা আগে ইনসার্ট করুন, তারপর চাইল্ড টেবিলে।

  1. MySQL ডেটাবেসে ফরেন কী আইডেন্টিফাই করা

  2. MySQL-এ ON DUPLICATE KEY UPDATE-এর জন্য কনস্ট্রেইন্ট যোগ করা

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

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