কম্পিউটার

মাইএসকিউএল ত্রুটি 1452 - একটি চাইল্ড সারি যোগ বা আপডেট করা যাবে না:একটি বিদেশী কী সীমাবদ্ধতা ব্যর্থ হয়?


এই ত্রুটিটি আসে যখনই আমরা টেবিলের মধ্যে একটি বিদেশী কী সীমাবদ্ধতা যোগ করি এবং চাইল্ড টেবিলে রেকর্ড সন্নিবেশ করি। আসুন একটি উদাহরণ দেখি।

চাইল্ড টেবিল তৈরি করা।

mysql> create table ChildDemo
   -> (
   -> id int,
   -> FKPK int
   -> );
Query OK, 0 rows affected (0.86 sec)

দ্বিতীয় টেবিল তৈরি করা হচ্ছে।

mysql> create table ParentDemo
   -> (
   -> FKPK int,
   -> Name varchar(100)
   -> ,
   -> primary key(FKPK)
   -> );
Query OK, 0 rows affected (0.57 sec)

বিদেশী কী সীমাবদ্ধতা যোগ করতে।

mysql> alter table ChildDemo add constraint ConstChild foreign key(FKPK) references ParentDemo(FKPK);
Query OK, 0 rows affected (1.97 sec)
Records: 0  Duplicates: 0  Warnings: 0

বিদেশী কী সীমাবদ্ধতা তৈরি করার পরে, যখনই আমরা প্রথম টেবিল বা চাইল্ড টেবিলে রেকর্ড সন্নিবেশ করি, আমরা উপরের ত্রুটিটি পাব৷

চাইল্ডডেমো মানগুলিতে
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`))

আপনি যখন একটি সারি যোগ করার চেষ্টা করছেন যার জন্য অন্য টেবিলে কোন মিল সারি নেই তখন ত্রুটিটি আসে৷

যেমন বলা হয়েছে

"বিদেশী মূল সম্পর্কের মধ্যে একটি অভিভাবক টেবিল জড়িত যা কেন্দ্রীয় ডেটা মান ধারণ করে, এবং অভিন্ন মান সহ একটি শিশু টেবিল তার পিতামাতার দিকে নির্দেশ করে৷ FOREIGN KEY ধারাটি চাইল্ড টেবিলে নির্দিষ্ট করা আছে। এটি কোনো INSERT বা UPDATE অপারেশন প্রত্যাখ্যান করবে যা একটি চাইল্ড টেবিলে একটি বিদেশী কী মান তৈরি করার চেষ্টা করে যদি প্যারেন্ট টেবিলে কোনো মিলিত প্রার্থী কী মান না থাকে।"


  1. জাভা মাইএসকিউএল দিয়ে একটি মাইএসকিউএল টেবিল আপডেট করুন

  2. মাইএসকিউএল-এর বিভিন্ন টেবিলে কীভাবে প্রাথমিক কী বিদেশী হিসাবে উল্লেখ করবেন?

  3. মাইএসকিউএল-এ রেফারেন্স হিসাবে অন্য টেবিল থেকে শুধুমাত্র স্ট্রিং ব্যবহার করে কীভাবে একটি টেবিলে একটি সারি যুক্ত করবেন?

  4. মাইএসকিউএল-এ বিদেশী কী ব্যবহার করা