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

MySQL-এ শর্তসহ TRUNCATE করা যায় কিনা?

MySQL-এ শর্তসহ TRUNCATE করা সম্ভব নয়। আপনি TRUNCATE স্টেটমেন্টে WHERE ক্লজ ব্যবহার করতে পারবেন না।

যদি শর্তের প্রয়োজন হয়, তবে DELETE কমান্ড ব্যবহার করুন:

DELETE FROM yourTableName WHERE yourCondition;

উপরের সিনট্যাক্স ঠিক আছে কিন্তু দ্রুত সমাধান চাইলে DELETE TRUNCATE-এর তুলনায় ভালো নয়। TRUNCATE-এর সুবিধা হলো এটি লগে কিছু লিখে না।

একটি টেবিল তৈরি করি:

mysql> CREATE TABLE DeleteDemo (
    -> Id INT,
    -> Name VARCHAR(100)
    -> ); Query OK, 0 rows affected (1.22 sec)

ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করি:

mysql> INSERT INTO DeleteDemo VALUES(101,'Carol'); Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DeleteDemo VALUES(102,'Sam'); Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DeleteDemo VALUES(103,'Bob'); Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DeleteDemo VALUES(104,'Mike'); Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DeleteDemo VALUES(105,'John'); Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO DeleteDemo VALUES(106,'Maria'); Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DeleteDemo VALUES(107,'Johnson'); Query OK, 1 row affected (0.17 sec)

সিলেক্ট কমান্ড দিয়ে সব রেকর্ড দেখি:

mysql> SELECT * FROM DeleteDemo;

আউটপুট

+------+---------+
| Id   | Name    |
+------+---------+
|  101 | Carol   |
|  102 | Sam     |
|  103 | Bob     |
|  104 | Mike    |
|  105 | John    |
|  106 | Maria   |
|  107 | Johnson |
+------+---------+
7 rows in set (0.00 sec)

WHERE ক্লজ ব্যবহার করে ডিলিট কমান্ড চালাতে পারেন কিন্তু এটি TRUNCATE नहीं। WHERE ক্লজ দিয়ে টেবিল থেকে রেকর্ড ডিলিট করার ক্যোয়ারি:

mysql> DELETE FROM DeleteDemo WHERE Id > 104; Query OK, 3 rows affected (0.13 sec)

আরেকবার সিলেক্ট কমান্ড দিয়ে টেবিল ডেটা চেক করি:

mysql> SELECT * FROM DeleteDemo;

আউটপুট

+------+-------+
| Id   | Name  |
+------+-------+
|  101 | Carol |
|  102 | Sam   |
|  103 | Bob   |
|  104 | Mike  |
+------+-------+
4 rows in set (0.00 sec)

উপরের স্যাম্পল আউটপুটে দেখুন, ১০৪ থেকে বড় সব রেকর্ড টেবিল থেকে ডিলিট হয়েছে।

  1. MySQL-এ INSERT INTO ব্যবহার করে তারিখ সহ রো ইনসার্ট করা

  2. MySQL-এ COUNT() এর ভিতরে CASE শর্ত ব্যবহার করে গণনা করা

  3. MySQL-এ শর্তসাপেক্ষে কাউন্ট করা (SUM ও WHERE ব্যবহার করে)

  4. MySQL-এ SELECT কুয়েরি দিয়ে INSERT করা (INSERT ... SELECT)