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

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


Mặc định AUTO_INCREMENT bắt đầu từ 1. Để thay đổi giá trị khởi đầu, dùng ALTER TABLE ... AUTO_INCREMENT = value.

Cú pháp

ALTER TABLE table_name AUTO_INCREMENT = start_value;

Ví dụ minh họa

mysql> CREATE TABLE startAutoIncrement (
  Counter INT AUTO_INCREMENT,
  PRIMARY KEY (Counter)
);
Query OK, 0 rows affected (0.90 sec)

mysql> ALTER TABLE startAutoIncrement AUTO_INCREMENT = 20;
Query OK, 0 rows affected (0.30 sec)

mysql> INSERT INTO startAutoIncrement VALUES (), (), ();
Query OK, 3 rows affected

Kết quả:

+---------+
| Counter |
+---------+
| 20      |
| 21      |
| 22      |
+---------+

Các trường hợp sử dụng

  • Hợp nhất dữ liệu từ nhiều database, tránh trùng khóa chính.
  • Khôi phục dữ liệu, tiếp tục chuỗi ID.
  • Yêu cầu nghiệp vụ: ID đơn hàng bắt đầu từ 10000.

Lưu ý quan trọng

  • Giá trị AUTO_INCREMENT mới phải lớn hơn giá trị MAX hiện tại trong cột. Nếu đặt nhỏ hơn, MySQL sẽ tự điều chỉnh lên MAX+1.
  • Không thể giảm AUTO_INCREMENT bằng lệnh này (cần recreate table hoặc TRUNCATE).
  • Xem giá trị hiện tại: SHOW TABLE STATUS LIKE 'table_name' hoặc SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_NAME='table_name'.