ไวยากรณ์เปลี่ยน 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