การตั้งค่า AUTO_INCREMENT ใหม่ด้วย ALTER TABLE
เมื่อต้องการรีเซ็ตคอลัมน์ AUTO_INCREMENT ให้เริ่มนับใหม่จาก 1 สามารถใช้คำสั่ง ALTER TABLE ได้ดังนี้:
ALTER TABLE yourTableName AUTO_INCREMENT = 0;
หมายเหตุ: การตั้งค่าเป็น 0 จะทำให้ค่าเริ่มต้นกลายเป็น 1 (ค่าเริ่มต้นมาตรฐานของ MySQL)
ตัวอย่างการใช้งาน
สร้างตารางพร้อมตั้งค่า AUTO_INCREMENT เริ่มต้นที่ 109:
mysql> CREATE TABLE DemoTable698 (
ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY
) AUTO_INCREMENT = 109;
Query OK, 0 rows affected (0.88 sec)
รีเซ็ตค่า AUTO_INCREMENT กลับไปที่ 0:
mysql> ALTER TABLE DemoTable698 AUTO_INCREMENT = 0; Query OK, 0 rows affected (0.21 sec)
เพิ่มข้อมูลใหม่ (ไม่ระบุค่า ClientId ให้ระบบสร้างอัตโนมัติ):
mysql> INSERT INTO DemoTable698 VALUES (); Query OK, 1 row affected (0.18 sec) mysql> INSERT INTO DemoTable698 VALUES (); Query OK, 1 row affected (0.12 sec) mysql> INSERT INTO DemoTable698 VALUES (); Query OK, 1 row affected (0.12 sec)
ตรวจสอบผลลัพธ์ - ค่า ID จะเริ่มที่ 1 ใหม่:
mysql> SELECT * FROM DemoTable698;
+----------+ | ClientId | +----------+ | 1 | | 2 | | 3 | +----------+ 3 rows in set (0.00 sec)
ข้อควรระวัง
- คำสั่งนี้ทำงานได้ก็ต่อเมื่อตารางว่างเปล่าหรือไม่มีข้อมูลที่มี ID สูงกว่าค่าที่จะตั้งใหม่
- หากมีข้อมูลอยู่แล้ว ให้ใช้
TRUNCATE TABLEก่อน (จะลบข้อมูลทั้งหมด) หรือลบข้อมูลด้วยDELETEแล้วค่อยรีเซ็ต - ในบางเวอร์ชัน MySQL อาจต้องใช้ค่า 1 แทน 0 ก็ได้ (ผลลัพธ์เหมือนกัน)