Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Thêm cột AUTO_INCREMENT với giá trị khởi tạo tùy chỉnh trong MySQL

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ả

StudentNameStudentId
Robert1000
Adam1001
Mike1002

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 KEY trước (cẩn thận: mất ràng buộc).
  • Giá trị AUTO_INCREMENT phải > max giá trị hiện có trong cột (nếu đã có dữ liệu).
  • Không thể dùng AUTO_INCREMENT trê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