AUTO_INCREMENT เป็นคุณสมบัติของ MySQL ที่ใช้สำหรับสร้างเลขลำดับอัตโนมัติ
ให้กับคอลัมน์ในตาราง โดยมักใช้กับ Primary Key เช่น id
เพื่อให้ข้อมูลใหม่ที่ถูกเพิ่มเข้ามามีหมายเลขเพิ่มขึ้นเรื่อย ๆ
ในบางกรณี เช่น มีการลบข้อมูลจำนวนมาก หรือมีการ Import ข้อมูลใหม่
ผู้ดูแลระบบอาจต้องการ Reset ค่า AUTO_INCREMENT
เพื่อให้การนับเลขเริ่มต้นใหม่
โครงสร้างตารางตัวอย่าง
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);
วิธีที่ 1: Reset AUTO_INCREMENT ด้วย ALTER TABLE
สามารถใช้คำสั่ง ALTER TABLE เพื่อกำหนดค่าเริ่มต้นของ AUTO_INCREMENT ใหม่ได้
ALTER TABLE users AUTO_INCREMENT = 1;
คำสั่งนี้จะทำให้การเพิ่มข้อมูลครั้งถัดไปเริ่มต้นจากหมายเลข 1
แต่จะมีผลก็ต่อเมื่อในตารางไม่มีข้อมูลอยู่แล้ว
วิธีที่ 2: Reset หลังจากลบข้อมูลทั้งหมด
ถ้าต้องการลบข้อมูลทั้งหมดและเริ่ม AUTO_INCREMENT ใหม่
สามารถใช้คำสั่ง TRUNCATE TABLE
TRUNCATE TABLE users;
คำสั่งนี้จะ
- ลบข้อมูลทั้งหมดในตาราง
- Reset ค่า AUTO_INCREMENT กลับเป็นค่าเริ่มต้น
ตัวอย่างการทำงาน
ข้อมูลก่อนลบ
id | name
-----------
1 | Somchai
2 | Suda
3 | Anan
เมื่อทำการลบข้อมูลทั้งหมดและ Reset AUTO_INCREMENT
TRUNCATE TABLE users;
เมื่อเพิ่มข้อมูลใหม่
INSERT INTO users(name,email)
VALUES('Nida','nida@email.com');
ผลลัพธ์
id | name
-----------
1 | Nida
ข้อควรระวัง
- ไม่สามารถตั้งค่า AUTO_INCREMENT ให้ต่ำกว่าค่า id ที่มีอยู่ได้
- TRUNCATE TABLE จะลบข้อมูลทั้งหมดแบบถาวร
- ควรสำรองข้อมูลก่อนดำเนินการ
สรุป
การ Reset ค่า AUTO_INCREMENT ใน MySQL สามารถทำได้ด้วยคำสั่ง
ALTER TABLE หรือ TRUNCATE TABLE
โดย ALTER TABLE ใช้สำหรับกำหนดค่าเริ่มต้นใหม่
ส่วน TRUNCATE TABLE จะลบข้อมูลทั้งหมดและ Reset ค่า AUTO_INCREMENT
กลับไปที่ค่าเริ่มต้น
