Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เปลี่ยนค่าเริ่มต้น Auto Increment ใน MySQL


ไวยากรณ์เปลี่ยน Auto Increment Counter

ค่าเริ่มต้นของ AUTO_INCREMENT คือ 1 แต่สามารถเปลี่ยนได้ด้วย:

ALTER TABLE your_table AUTO_INCREMENT = your_start_number;

ตัวอย่างการใช้งาน

สร้างตารางมี Auto Increment

CREATE TABLE startAutoIncrement (
    Counter INT AUTO_INCREMENT,
    PRIMARY KEY (Counter)
);

ตั้งค่าเริ่มต้นที่ 20

ALTER TABLE startAutoIncrement AUTO_INCREMENT = 20;

เพิ่มข้อมูล 3 แถว (ไม่ระบุค่า Counter)

INSERT INTO startAutoIncrement VALUES ();
INSERT INTO startAutoIncrement VALUES ();
INSERT INTO startAutoIncrement VALUES ();

ผลลัพธ์

+---------+
| Counter |
+---------+
| 20      |
| 21      |
| 22      |
+---------+

กรณีใช้งานจริง

  • Merge ข้อมูลจากหลายระบบ (กัน ID ซ้ำ)
  • Reset หลังลบข้อมูลมาก (ไม่บังคับ แต่ทำได้)
  • เริ่มต้นจากเลขที่มีความหมาย (เช่น ปี 20240001)

ข้อจำกัด

  • ไม่สามารถตั้งค่าต่ำกว่าค่า MAX ปัจจุบันได้ (จะ Error)
  • ใช้ได้กับ Storage Engine ที่รองรับ (InnoDB, MyISAM)
  • ใน InnoDB ค่า Auto Increment จะ Reset หลัง Restart หากไม่ได้ Set ค่าใน Config

ดูค่า Auto Increment ปัจจุบัน

SHOW TABLE STATUS LIKE 'your_table_name';
-- ดูคอลัมน์ Auto_increment