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

MySQL Error 1452: ফরেন কি কনস্ট্রেইন্ট ফেইল সমাধান

Error 1452: Cannot add or update a child row

এই এরর হয় যখন চাইল্ড টেবিলে এমন একটি ফরেন কি মান ইনসার্ট/আপডেট করা হয় যা প্যারেন্ট টেবিলে বিদ্যমান নেই।

উদাহরণ সেটআপ

mysql> CREATE TABLE ChildDemo (id INT, FKPK INT);
mysql> CREATE TABLE ParentDemo (FKPK INT, Name VARCHAR(100), PRIMARY KEY (FKPK));
mysql> ALTER TABLE ChildDemo ADD CONSTRAINT ConstChild FOREIGN KEY (FKPK) REFERENCES ParentDemo(FKPK);

এরর উত্পাদন

mysql> INSERT INTO ChildDemo VALUES (1, 3);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails
(`business`.`childdemo`, CONSTRAINT `ConstChild` FOREIGN KEY (`FKPK`) REFERENCES `parentdemo` (`fkpk`))

কারণ: ParentDemo-এ FKPK = 3 वाली কোনো সারি নেই।

সমাধান

  1. প্রথমে প্যারেন্ট টেবিলে মিলে যাওয়া রো ইনসার্ট করুন: INSERT INTO ParentDemo VALUES (3, 'SomeName');
  2. তারপর চাইল্ড টেবিলে ইনসার্ট করুন।
  3. বা কনস্ট্রেইন্ট ডিজাইনে ON DELETE SET NULL / CASCADE ব্যবহার করুন।

মূল নীতি: ফরেন কি রিলেশনশিপে প্যারেন্টে ডেটা থাকতে হবে চাইল্ডে রেফারেন্স করার আগে।

  1. Java MySQL ব্যবহার করে MySQL টেবিল আপডেট করা

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

  3. MySQL-এ INSERT INTO SELECT ব্যবহার করে অন্য টেবিল থেকে স্ট্রিং মান নিয়ে রো যোগ করা

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