ত্রুটি 1452 বোঝার জন্য, প্রথমে আমাদের একটি টেবিল তৈরি করতে হবে এবং একটি বিদেশী কী সীমাবদ্ধতার সাহায্যে এটিকে অন্য টেবিলের সাথে সম্পর্কিত করতে হবে।
প্রথম টেবিল তৈরি করা হচ্ছে -
mysql> টেবিল তৈরি করুন ForeignTable-> (-> id int,-> name varchar(200),-> Fk_pk int-> );কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.43 সেকেন্ড)
প্রথম টেবিলটি সফলভাবে তৈরি করার পর, আমরা দ্বিতীয় টেবিলটি তৈরি করব -
mysql> সারণী তৈরি করুন primeTable1-> (-> Fk_pk int,-> DeptName varchar(200),-> প্রাথমিক কী(Fk_pk)-> );কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.48 সেকেন্ড)
এখন, আমরা উভয় টেবিল তৈরি করেছি। তারপরে উভয় টেবিলই অল্টারকমান্ডের সাহায্যে বিদেশী কী সীমাবদ্ধতা যোগ করার সাথে সম্পর্কিত। সিনট্যাক্স নিম্নরূপ -
টেবিল পরিবর্তন করুন yourFirstTable যোগ করুন সীমাবদ্ধতা anyConstraintName বিদেশী কী (কলাম_নাম যা দ্বিতীয় টেবিলে বিদেশী কী ব্যবহার করে) yourSecondTable(কলাম_নাম যা প্রাথমিক কী ইনসেকেন্ড টেবিলে কাজ করে)।
এখন, উপরের প্রশ্নটি উভয় টেবিলের সাথে সম্পর্কিত করতে ব্যবহৃত হয়। এটি নিম্নরূপ দেওয়া হয় -
mysql> সারণি পরিবর্তন করুন ForeignTable সীমাবদ্ধতা যোগ করুনFKPK বিদেশী কী(Fk_pk) রেফারেন্সপ্রাইমারি টেবিল1(Fk_pk);কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (1.57 সেকেন্ড)রেকর্ডস:0 ডুপ্লিকেট:0 সতর্কতা:0
এখন, উভয় টেবিল সম্পর্কিত। −
এইভাবে রেকর্ডগুলি 'বিদেশী টেবিল' সারণীতে সন্নিবেশ করা হয়েছেmysql> ফরেনটেবল মান (1,'জন',1);
এর ফলে একটি ত্রুটি দেখা যায় যা নীচের আউটপুট −
এ দেখানো হয়েছেত্রুটি 1452 (23000):একটি চাইল্ড সারি যোগ বা আপডেট করা যাবে না:একটি বিদেশী কী সীমাবদ্ধতা ব্যর্থ হয়(`ব্যবসা`।`বিদেশী', সীমাবদ্ধতা `constFKPK` বিদেশী কী (`Fk_pk`) রেফারেন্স `প্রাইমারিটেবল1` (`fk_pk`) রেফারেন্স ))
উপরের আউটপুটে, আমরা 'একটি চাইল্ড সারি যুক্ত বা আপডেট করা যাবে না:একটি বিদেশী কী-সংক্রান্ত ব্যর্থতা' ত্রুটিটি পাচ্ছি। আমরা নীচের দেখানো −
সারণী primeTable1-এ রেকর্ড সন্নিবেশ করে এই ত্রুটিটি দূর করতে পারিmysql> প্রাইমারিটেবল1 মান (1,'কম্পিউটারসায়েন্স') এ ঢোকান; কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.14 সেকেন্ড)
প্রাইমারি টেবিল 1 টেবিলে রেকর্ড ঢোকানোর পর, আমরা কোনো ত্রুটি ছাড়াই ফরেনটেবল টেবিলে প্রয়োজনীয় রেকর্ড ঢোকাতে পারি। এটি নীচে দেখানো হয়েছে -
mysql> বিদেশী টেবিলের মান (1,'জন',1) ঢোকান; ঠিক আছে, 1 সারি প্রভাবিত (0.13 সেকেন্ড)
এখন, আমরা নির্বাচন কমান্ডের সাহায্যে ফরেনটেবলের টেবিল রেকর্ডগুলি প্রদর্শন করতে পারি, যা নিম্নরূপ -
ফরেনটেবল থেকেmysql> SELECT *;
উপরের প্রশ্নের আউটপুট হল −
+------+------+------+| আইডি | নাম | Fk_pk |+------+------+-------+| 1 | জন | 1 |+------+------+------+1 সারি সেটে (0.00 সেকেন্ড)
আমরা নির্বাচন কমান্ডের সাহায্যে প্রাথমিক টেবিল 1 এর টেবিল রেকর্ডগুলিও প্রদর্শন করতে পারি, যা নিম্নরূপ -
প্রাথমিক টেবিল 1 থেকেmysql> SELECT *;
উপরের প্রশ্নের আউটপুট হল −
<প্রে>+---------+-----------------+| Fk_pk | বিভাগের নাম |+------+-----------------+| 1 | কম্পিউটার সায়েন্স |+------+-----------------+1 সারি সেটে (0.00 সেকেন্ড)ত্রুটি 1452 - একটি চাইল্ড সারি যোগ বা আপডেট করা যাবে না:একটি বিদেশী কী সীমাবদ্ধতা ব্যর্থ হয় যখন প্রাথমিকভাবে ফরেনটেবলে ডেটা রেকর্ড ঢোকানো হয়।
দ্রষ্টব্য:প্রথমত, উপরের ত্রুটি এড়াতে দ্বিতীয় টেবিলে অর্থাৎ প্রাথমিক টেবিল 1-এ রেকর্ড যোগ করুন।