ทั้งคู่ลบข้อมูลทั้งหมดในตาราง แต่แตกต่างที่การ **รีเซ็ต AUTO_INCREMENT**:
- DELETE: ไม่รีเซ็ต AUTO_INCREMENT ค่า ID ใหม่จะต่อจากค่าเดิม
- TRUNCATE: รีเซ็ต AUTO_INCREMENT เริ่มที่ 1 ใหม่เหมือนตารางเพิ่งสร้าง
ตัวอย่างสาธิต
mysql> CREATE TABLE Testing(Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(20));
mysql> INSERT INTO Testing(Name) VALUES('Gaurav'),('Rahul'),('Aarav'),('Yashraj'),('Manak');
mysql> DELETE FROM Testing WHERE Id >= 4; -- ลบ ID 4,5
mysql> INSERT INTO Testing(Name) VALUES('Harshit'),('Lovkesh'); -- ID ใหม่คือ 6,7
mysql> TRUNCATE TABLE Testing; -- รีเซ็ต
mysql> INSERT INTO Testing(Name) VALUES('Harshit'),('Lovkesh'),('Ram'),('Gaurav'); -- ID ใหม่คือ 1,2,3,4
สรุป: ใช้ TRUNCATE เมื่อต้องการล้างตารางและเริ่ม ID ใหม่ ใช้ DELETE เมื่อต้องการเก็บลำดับ ID ไว้