เพิ่ม AUTO_INCREMENT ให้คอลัมน์ที่มีอยู่แล้ว
ใช้ ALTER TABLE ... MODIFY COLUMN เพื่อเพิ่ม AUTO_INCREMENT และ PRIMARY KEY ภายหลัง
สร้างตารางโดยไม่มี Auto Increment
CREATE TABLE forgetToSetAutoIncrementDemo (
StudentId INT,
StudentName VARCHAR(30)
);
ตรวจสอบโครงสร้าง (ยังไม่มี auto_increment)
+-------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+-------+ | StudentId | int(11) | YES | | NULL | | | StudentName | varchar(30) | YES | | NULL | | +-------------+-------------+------+-----+---------+-------+
เพิ่ม AUTO_INCREMENT + PRIMARY KEY
ALTER TABLE forgetToSetAutoIncrementDemo MODIFY COLUMN StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
ตรวจสอบอีกครั้ง
+-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | StudentId | int(11) | NO | PRI | NULL | auto_increment | | StudentName | varchar(30) | YES | | NULL | | +-------------+-------------+------+-----+---------+----------------+
ทดสอบ Insert
INSERT INTO forgetToSetAutoIncrementDemo(StudentName) VALUES ('Larry'), ('Chris'), ('Robert');
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1 | Larry | | 2 | Chris | | 3 | Robert | +-----------+-------------+
ข้อควรระวัง
- คอลัมน์ต้องเป็น NOT NULL
- ต้องไม่มีค่า NULL ในคอลัมน์นั้นอยู่แล้ว
- ค่าที่มีอยู่จะไม่ได้รับผลกระทบ (Auto Increment เริ่มจาก Max+1)