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

Thiết lập giá trị AUTO_INCREMENT ban đầu cho bảng MySQL

2 bước thực hiện

Bước 1: Đảm bảo cột là PRIMARY KEY + AUTO_INCREMENT + INDEX

ALTER TABLE bang MODIFY cot INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ADD INDEX(cot);

Bước 2: Set giá trị khởi tạo

ALTER TABLE bang AUTO_INCREMENT = gia_tri_bat_dau;

Ví dụ: Bắt đầu từ 1000

Tạo bảng

mysql> CREATE TABLE setAutoIncrementDemo (
    UserId INT,
    UserName VARCHAR(20)
);

Bước 1

mysql> ALTER TABLE setAutoIncrementDemo 
    -> MODIFY UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    -> ADD INDEX(UserId);

Bước 2

mysql> ALTER TABLE setAutoIncrementDemo AUTO_INCREMENT = 1000;

Chèn dữ liệu test

mysql> INSERT INTO setAutoIncrementDemo(UserName) VALUES('John'),('Carol'),('Sam');

Kết quả

+--------+----------+
| UserId | UserName |
+--------+----------+
| 1000   | John     |
| 1001   | Carol    |
| 1002   | Sam      |
+--------+----------+

Lưu ý quan trọng

  • Giá trị AUTO_INCREMENT phải > MAX hiện tại của cột (nếu có data)
  • Không thể set AUTO_INCREMENT < giá trị max hiện tại
  • MyISAM: Cho phép set thấp hơn (nhưng insert sẽ skip)
  • InnoDB: Báo lỗi nếu set ≤ MAX(id)
  • Xem giá trị hiện tại: SHOW TABLE STATUS LIKE 'bang'; (cột Auto_increment)

Reset AUTO_INCREMENT (xóa data + reset về 1)

TRUNCATE TABLE bang;  -- Tự reset AUTO_INCREMENT về 1

Ứng dụng: Phân sharding (mỗi shard dùng range ID riêng), merge data từ nhiều nguồn, test dữ liệu.