Sử dụng ALTER TABLE lần lượt: thêm cột, đặt PRIMARY KEY, rồi sửa cột thành AUTO_INCREMENT.
Tạo bảng ban đầu không có ID
mysql> CREATE TABLE DemoTable (StudentName VARCHAR(100)); Query OK, 0 rows affected (0.46 sec)
3 bước ALTER TABLE
mysql> ALTER TABLE DemoTable ADD COLUMN StudentId INT NOT NULL; Query OK, 0 rows affected (0.50 sec) mysql> ALTER TABLE DemoTable ADD PRIMARY KEY(StudentId); Query OK, 0 rows affected (1.23 sec) mysql> ALTER TABLE DemoTable CHANGE StudentId StudentId INT NOT NULL AUTO_INCREMENT; Query OK, 0 rows affected (2.20 sec)
Chèn dữ liệu kiểm tra
mysql> INSERT INTO DemoTable(StudentName) VALUES('Chris'), ('David');
Query OK, 2 rows affected (0.17 sec)
mysql> SELECT * FROM DemoTable;
+-------------+-----------+ | StudentName | StudentId | +-------------+-----------+ | Chris | 1 | | David | 2 | +-------------+-----------+ 2 rows in set (0.00 sec)
Lưu ý:
- Bảng phải rỗng hoặc cột mới phải NOT NULL với giá trị mặc định hợp lệ
- MySQL 8.0+ có thể gộp:
ALTER TABLE DemoTable ADD COLUMN StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST; FIRSTđặt cột ở đầu bảng