TRUNCATE และตั้งค่า AUTO_INCREMENT ใหม่
TRUNCATE TABLE ลบข้อมูลทั้งหมดและรีเซ็ต AUTO_INCREMENT กลับเป็น 1 ตามด้วย ALTER TABLE ... AUTO_INCREMENT = n ตั้งค่าเริ่มต้นใหม่
ตัวอย่าง
mysql> create table DemoTable825(Value int NOT NULL AUTO_INCREMENT PRIMARY KEY);
Query OK, 0 rows affected (0.63 sec)
mysql> insert into DemoTable825 values();
mysql> insert into DemoTable825 values();
mysql> insert into DemoTable825 values();
ข้อมูลเดิม: 1, 2, 3
ขั้นตอน
-- 1. ล้างข้อมูลและรีเซ็ต AUTO_INCREMENT เป็น 1
mysql> truncate table DemoTable825;
Query OK, 0 rows affected (0.58 sec)
-- 2. ตั้งค่า AUTO_INCREMENT เริ่มที่ 2000
mysql> alter table DemoTable825 auto_increment = 2000;
Query OK, 0 rows affected (0.16 sec)
-- 3. แทรกใหม่
mysql> insert into DemoTable825 values();
mysql> insert into DemoTable825 values();
mysql> insert into DemoTable825 values();
ผลลัพธ์
+-------+
| Value |
+-------+
| 2000 |
| 2001 |
| 2002 |
+-------+
หมายเหตุ
TRUNCATEเร็วกว่าDELETEมาก (Drop & Recreate table)TRUNCATEไม่ทำให้ Trigger AFTER DELETE ทำงานALTER TABLE ... AUTO_INCREMENT = nต้องมีค่า n > ค่าสูงสุดปัจจุบัน (ถ้ามีข้อมูล)- หลัง TRUNCATE ไม่มีข้อมูล จึงตั้งค่าได้เลย
สรุป
ใช้ TRUNCATE TABLE ล้างข้อมูล แล้ว ALTER TABLE ... AUTO_INCREMENT = n ตั้งค่าเริ่มต้นใหม่