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

Đặt giá trị khởi đầu AUTO_INCREMENT trong MySQL

Thay đổi giá trị bắt đầu của AUTO_INCREMENT

Dùng ALTER TABLE ... AUTO_INCREMENT = gia_tri để đặt điểm bắt đầu cho khóa chính tự tăng.

Cú pháp

ALTER TABLE tenBang AUTO_INCREMENT = soNguyenDuong;

Ví dụ minh họa

Tạo bảng có AUTO_INCREMENT:

CREATE TABLE AutoIncrementSpecificPoint (
    BookId INT AUTO_INCREMENT NOT NULL,
    PRIMARY KEY (BookId)
);

Chèn 4 dòng (mặc định bắt đầu từ 1):

INSERT INTO AutoIncrementSpecificPoint VALUES (), (), (), ();
+--------+
| BookId |
+--------+
|      1 |
|      2 |
|      3 |
|      4 |
+--------+

Đặt AUTO_INCREMENT = 100:

ALTER TABLE AutoIncrementSpecificPoint AUTO_INCREMENT = 100;

Chèn thêm 3 dòng:

INSERT INTO AutoIncrementSpecificPoint VALUES (), (), ();

Kết quả

+--------+
| BookId |
+--------+
|      1 |
|      2 |
|      3 |
|      4 |
|    100 |
|    101 |
|    102 |
+--------+

Lưu ý quan trọng

  • Giá trị mới phải lớn hơn MAX(id) hiện tại, nếu không MySQL sẽ bỏ qua (giữ giá trị lớn nhất + 1).
  • Không thể đặt AUTO_INCREMENT nhỏ hơn giá trị hiện có.
  • Dùng SHOW TABLE STATUS LIKE 'tenBang' để xem giá trị AUTO_INCREMENT tiếp theo.
  • Trong InnoDB, giá trị AUTO_INCREMENT lưu trong memory, mất khi restart (từ 8.0 đã persistent).

Ứng dụng

  • Gộp dữ liệu từ nhiều server (set offset khác nhau).
  • Đồng bộ ID với hệ thống ngoài.
  • Tránh trùng ID khi merge database.