কম্পিউটার

আমি মাইএসকিউএল প্যারেন্ট টেবিল থেকে একটি সারি মুছে ফেললে কি হবে?


প্যারেন্ট টেবিল থেকে সারিটি মুছে ফেলার সময়, যদি সেই সারির ডেটা চাইল্ড টেবিলে ব্যবহার করা হয় তবে FOREIGN KEY সীমাবদ্ধতার ব্যর্থতার কারণে MySQL একটি ত্রুটি নিক্ষেপ করবে। এটি 'গ্রাহক' এবং 'অর্ডার' নামের দুটি টেবিলের উদাহরণ দিয়ে বোঝা যায়। এখানে, 'গ্রাহক' হল প্যারেন্ট টেবিল এবং 'অর্ডার' হল চাইল্ড টেবিল। আমরা 'গ্রাহক' টেবিল থেকে একটি সারি মুছে ফেলতে পারি না, যেটি চাইল্ড টেবিল 'অর্ডার'-এ ব্যবহৃত হয়। নিম্নরূপ −

mysql> Select * from Customer;
+----+--------+
| id | name   |
+----+--------+
| 1  | Gaurav |
| 2  | Raman  |
| 3  | Harshit|
| 4  | Aarav  |
+----+--------+
4 rows in set (0.00 sec)

mysql> Select * from orders;
+----------+----------+------+
| order_id | product  | id   |
+----------+----------+------+
| 100      | Notebook | 1    |
| 110      | Pen      | 1    |
| 120      | Book     | 2    |
| 130      | Charts   | 2    |
+----------+----------+------+
4 rows in set (0.00 sec)

এখন, ধরুন আমরা যদি প্যারেন্ট টেবিল 'গ্রাহক' থেকে id =1 বা id =2 (চাইল্ড টেবিলে উভয় সারি ব্যবহৃত হওয়ার কারণে) যুক্ত সারিটি মুছে ফেলার চেষ্টা করি, তাহলে মাইএসকিউএল বিদেশী ব্যর্থতার কারণে নিম্নরূপ একটি ত্রুটি নিক্ষেপ করে। মূল সীমাবদ্ধতা।

mysql> Delete from customer where id = 1;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`query`.`orders`, CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`id`)REFERENCES `customer` (`id`))

mysql> Delete from customer where id = 2;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`query`.`orders`, CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`id`)REFERENCES `customer` (`id`))

  1. একটি MySQL টেবিল থেকে র্যান্ডম সারি প্রদর্শন করুন

  2. MySQL-এর একটি শর্তের উপর ভিত্তি করে একটি টেবিল থেকে শুধুমাত্র কিছু সারি মুছুন

  3. একটি একক প্রশ্নে IN() সহ একটি MySQL টেবিল থেকে রেকর্ড মুছুন

  4. কিভাবে ডুপ্লিকেট মুছে ফেলবেন এবং MySQL এ একটি টেবিলে একটি সারি রাখবেন?