Dùng ALTER TABLE ... ADD COLUMN ... AUTO_INCREMENT kèm AUTO_INCREMENT = gia_tri_khoi_tao để thêm cột ID tự tăng bắt đầu từ số tùy ý vào bảng đã có dữ liệu.
Ví dụ minh họa
Tạo bảng chỉ có tên:
CREATE TABLE DemoTable (StudentName VARCHAR(20));
INSERT INTO DemoTable VALUES ('Robert'), ('Adam'), ('Mike');
Thêm cột StudentId bắt đầu từ 1000:
ALTER TABLE DemoTable ADD COLUMN StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, AUTO_INCREMENT = 1000;
Kết quả
| StudentName | StudentId |
|---|---|
| Robert | 1000 |
| Adam | 1001 |
| Mike | 1002 |
Giải thích
ADD COLUMN StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY: Thêm cột, đặt làm khóa chính, tự tăng.AUTO_INCREMENT = 1000: Đặt giá trị bắt đầu (next value sẽ là 1000).- MySQL tự động điền giá trị 1000, 1001, 1002 cho các hàng hiện có theo thứ tự vật lý (thường theo thứ tự insert).
Lưu ý quan trọng
- Bảng chỉ được có 1 cột AUTO_INCREMENT và cột đó phải là khóa chính (hoặc một phần của khóa chính).
- Nếu bảng đã có khóa chính, phải
DROP PRIMARY KEYtrước (cẩn thận: mất ràng buộc). - Giá trị
AUTO_INCREMENTphải > max giá trị hiện có trong cột (nếu đã có dữ liệu). - Không thể dùng
AUTO_INCREMENTtrên cột không phải kiểu số nguyên (INT, BIGINT...).
Xem giá trị AUTO_INCREMENT hiện tại
SHOW TABLE STATUS LIKE 'DemoTable'\G -- Xem trường Auto_increment