บทนำ
ตารางที่มีคอลัมน์เดียวและคอลัมน์นั้นเป็น AUTO_INCREMENT PRIMARY KEY สามารถ INSERT ได้โดยไม่ระบุค่า (หรือระบุ 0/NULL) ระบบจะสร้าง ID อัตโนมัติ
ตัวอย่างการสร้างตาราง
mysql> CREATE TABLE DemoTable (
-> StudentId INT NOT NULL AUTO_INCREMENT,
-> PRIMARY KEY(StudentId)
-> );
Query OK, 0 rows affected (0.60 sec)
เพิ่มข้อมูล (ระบุค่า 0 สำหรับ AUTO_INCREMENT)
mysql> INSERT INTO DemoTable(StudentId) VALUES(0);
หมายเหตุ: ใส่ 0, NULL, หรือไม่ระบุคอลัมน์ก็ได้ ผลลัพธ์เหมือนกัน
แสดงข้อมูล
mysql> SELECT * FROM DemoTable;
ผลลัพธ์
+-----------+
| StudentId |
+-----------+
| 1 |
+-----------+
1 row in set (0.00 sec)
คำอธิบาย
- คอลัมน์ StudentId เป็น AUTO_INCREMENT PRIMARY KEY
- INSERT โดยให้ค่า 0 (หรือ NULL) → MySQL จะมอบหมายค่าถัดไป (1) อัตโนมัติ
- นี่คือรูปแบบตาราง Sequence/ID Generator แบบง่าย
การ INSERT หลายแถวพร้อมกัน
INSERT INTO DemoTable() VALUES(), (), (), ();
-- หรือ
INSERT INTO DemoTable(StudentId) VALUES(0), (0), (0), (0);
การได้ค่า ID ที่เพิ่ง Insert (LAST_INSERT_ID)
INSERT INTO DemoTable() VALUES();
SELECT LAST_INSERT_ID(); -- คืนค่า ID ที่เพิ่งสร้าง (Session-specific)
การประยุกต์: ตาราง Log/Sequence
CREATE TABLE LogSequence (
Id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- ทุกครั้งที่ต้องการ ID ใหม่
INSERT INTO LogSequence() VALUES();
SELECT LAST_INSERT_ID();