Company insights

การ Reset ค่า AUTO_INCREMENT ใน MySQL


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
กลับไปที่ค่าเริ่มต้น