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

ลืมตั้ง Auto Increment ตั้งค่าภายหลังได้ใน MySQL

เพิ่ม 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)