আমরা জানি TRUNCATE টেবিলের কাঠামো না মুছে সব রো মুছে ফেলে। একই কাজ DELETE কমান্ড দিয়েও করা যায়। কিন্তু PRIMARY KEY AUTO_INCREMENT-এর পুনরারম্ভ (re-initialization) ক্ষেত্রে দুটি কমান্ডের মধ্যে গুরুত্বপূর্ণ পার্থক্য আছে।
যদি একটি কলাম AUTO_INCREMENT এবং PRIMARY KEY CONSTRAINT সহ থাকে, তবে DELETE কমান্ড দিয়ে সব রো মুছলে টেবিল পুনরারম্ভ হয় না, অর্থাৎ নতুন রো ইনসার্ট করলে AUTO_INCREMENT নম্বর শেষ ইনসার্ট করা রো থেকে শুরু হবে। বিপরীতে, TRUNCATE ব্যবহার করলে টেবিল নতুন তৈরি হওয়ার মত রি-ইনিশিয়ালাইজ হয়। অর্থাৎ TRUNCATE এর পর নতুন রো ইনসার্ট করলে AUTO_INCREMENT নম্বর ১ থেকে শুরু হবে।
উদাহরণ
নিচের উদাহরণটি উপরের ধারণাটি প্রদর্শন করবে:
mysql> Create table Testing(Id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, Name Varchar(20));
Query OK, 0 rows affected (0.15 sec)
mysql> Insert into testing(Name) values('Gaurav'),('Rahul'),('Aarav'),('Yashraj'),('Manak');
Query OK, 5 rows affected (0.09 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> Select * from testing;
+----+---------+
| Id | Name |
+----+---------+
| 1 | Gaurav |
| 2 | Rahul |
| 3 | Aarav |
| 4 | Yashraj |
| 5 | Manak |
+----+---------+
5 rows in set (0.00 sec)
mysql> Delete from testing where id >=4;
Query OK, 2 rows affected (0.04 sec)
mysql> Select * from testing;
+----+--------+
| Id | Name |
+----+--------+
| 1 | Gaurav |
| 2 | Rahul |
| 3 | Aarav |
+----+--------+
3 rows in set (0.00 sec)
mysql> Insert into testing(Name) values('Harshit'),('Lovkesh');
Query OK, 2 rows affected (0.06 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> Select * from testing;
+----+---------+
| Id | Name |
+----+---------+
| 1 | Gaurav |
| 2 | Rahul |
| 3 | Aarav |
| 6 | Harshit |
| 7 | Lovkesh |
+----+---------+
5 rows in set (0.00 sec)
mysql> Truncate table testing;
Query OK, 0 rows affected (0.10 sec)
mysql> Insert into testing(Name) values('Harshit'),('Lovkesh'),('Ram'),('Gaurav');
Query OK, 4 rows affected (0.11 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> Select * from testing;
+----+---------+
| Id | Name |
+----+---------+
| 1 | Harshit |
| 2 | Lovkesh |
| 3 | Ram |
| 4 | Gaurav |
+----+---------+
4 rows in set (0.00 sec)