Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ความแตกต่างระหว่างคำสั่ง TRUNCATE และ DELETE ใน MySQL

ทั้งคู่ลบข้อมูลทั้งหมดในตาราง แต่แตกต่างที่การ **รีเซ็ต 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 ไว้