คำสั่ง TRUNCATE TABLE
TRUNCATE TABLE ลบข้อมูลทั้งหมดในตาราง เร็วกว่า DELETE มาก และ Reset Auto Increment:
TRUNCATE TABLE your_table_name;
ตัวอย่างการใช้งาน
สร้างตารางและเพิ่มข้อมูล
CREATE TABLE DeleteAllFromTable (
PersonId INT,
PersonName VARCHAR(200)
);
INSERT INTO DeleteAllFromTable VALUES
(100, 'Johnson'), (101, 'John'), (102, 'Carol'), (103, 'Sam');
ข้อมูลก่อนลบ
+----------+------------+
| PersonId | PersonName |
+----------+------------+
| 100 | Johnson |
| 101 | John |
| 102 | Carol |
| 103 | Sam |
+----------+------------+
คำสั่ง TRUNCATE
TRUNCATE TABLE DeleteAllFromTable;
ตรวจสอบหลังลบ
SELECT * FROM DeleteAllFromTable;
-- Empty set (0.00 sec)
TRUNCATE vs DELETE
| คุณสมบัติ | TRUNCATE TABLE | DELETE FROM table |
|---|---|---|
| ความเร็ว | เร็วมาก (Drop & Recreate) | ช้ากว่า (ลบแถวทีละแถว) |
| Auto Increment | Reset เป็น 1 | ไม่ Reset (ต่อจากค่าเดิม) |
| WHERE Clause | ไม่รองรับ | รองรับ |
| Trigger | ไม่ยิง ON DELETE Trigger | ยิง Trigger ทุกแถว |
| Rollback | ไม่ได้ (Implicit Commit) | ได้ (ใน Transaction) |
| Lock | Table Lock | Row Lock |