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

MySQL প্যারেন্ট টেবিল থেকে সারি ডিলিট করলে কী হয়

যদি প্যারেন্ট টেবিলের সারিটি চাইল্ড টেবিলে ব্যবহার করা থাকে, তবে সেটি ডিলিট করলে MySQL FOREIGN KEY কনস্ট্রেইন্ট ভাঙলোর জন্য এরর দেবে।

উদাহরণ

customer (প্যারেন্ট) এবং orders (চাইল্ড) টেবিল:

mysql> SELECT * FROM Customer;
+----+--------+
| id | name   |
+----+--------+
| 1  | Gaurav |
| 2  | Raman  |
| 3  | Harshit|
| 4  | Aarav  |
+----+--------+

mysql> SELECT * FROM orders;
+----------+----------+------+
| order_id | product  | id   |
+----------+----------+------+
| 100      | Notebook | 1    |
| 110      | Pen      | 1    |
| 120      | Book     | 2    |
| 130      | Charts   | 2    |
+----------+----------+------+

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...

সমাধান: আগে চাইল্ড টেবিলের সম্পর্কিত সারি ডিলিট করুন, অথবা ON DELETE CASCADE ব্যবহার করুন।

  1. MySQL-এ RAND() এবং LIMIT দিয়ে র‍্যান্ডম রো বের করা

  2. MySQL-এ শর্তের ভিত্তিতে নির্দিষ্ট রো ডিলিট করা (WHERE + LIMIT)

  3. MySQL-এ IN() অপারেটর দিয়ে একক কোয়েরিতে একাধিক রেকর্ড ডিলিট করা

  4. MySQL-এ ডুপ্লিকেট রো মুছে একটি রাখা