บทนำ
คอลัมน์ AUTO_INCREMENT จะสร้างค่า ID อัตโนมัติทุกครั้งที่เพิ่มแถวใหม่ โดยทั่วไปใช้กับ Primary Key
ตัวอย่างการสร้างตารางพร้อม AUTO_INCREMENT
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> FirstName VARCHAR(20),
-> LastName VARCHAR(20)
-> );
Query OK, 0 rows affected (0.71 sec)
เพิ่มข้อมูล (ไม่ต้องระบุ Id)
mysql> INSERT INTO DemoTable(FirstName, LastName) VALUES('John', 'Smith');
mysql> INSERT INTO DemoTable(FirstName, LastName) VALUES('Chris', 'Brown');
mysql> INSERT INTO DemoTable(FirstName, LastName) VALUES('Carol', 'Taylor');
แสดงข้อมูล
mysql> SELECT * FROM DemoTable;
ผลลัพธ์
+----+-----------+----------+
| Id | FirstName | LastName |
+----+-----------+----------+
| 1 | John | Smith |
| 2 | Chris | Brown |
| 3 | Carol | Taylor |
+----+-----------+----------+
3 rows in set (0.00 sec)
คุณสมบัติสำคัญของ AUTO_INCREMENT
- เริ่มต้นที่ 1 และเพิ่มทีละ 1
- สามารถตั้งค่าเริ่มต้นได้ด้วย
AUTO_INCREMENT = nขณะ CREATE TABLE - สามารถเปลี่ยนค่าได้ด้วย
ALTER TABLE ... AUTO_INCREMENT = n - ค่าที่ถูกลบ (DELETE) จะไม่ถูกนำกลับมาใช้ใหม่ (Gap)
- ต้องเป็น INDEX (มักเป็น PRIMARY KEY หรือ UNIQUE KEY)
คำสั่งที่เกี่ยวข้อง
-- ดูค่า AUTO_INCREMENT ปัจจุบัน
SHOW TABLE STATUS LIKE 'DemoTable'\G
-- รีเซ็ต AUTO_INCREMENT (ต้องระวัง: อาจทำให้ ID ซ้ำได้)
ALTER TABLE DemoTable AUTO_INCREMENT = 1;
-- ดูค่า ID ที่เพิ่ง INSERT (Last Insert ID)
SELECT LAST_INSERT_ID();