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

Làm việc với cột AUTO_INCREMENT trong MySQL

Hiểu cách làm việc với cột AUTO_INCREMENT trong MySQL.

Thuộc tính AUTO_INCREMENT dùng tạo định danh duy nhất cho hàng mới. Xem cách câu lệnh này hoạt động. Trước đó, xem truy vấn:

Truy vấn

CREATE TABLE tableName (
    id MEDIUMINT NOT NULL AUTO_INCREMENT,
    name CHAR(30) NOT NULL,
    PRIMARY KEY (id)
);
INSERT INTO tableName (name) VALUES ('val1'),('val2'),('val3'), ('val4');
SELECT * FROM tableName;

Kết quả

+----+---------+
| id | name    |
+----+---------+
| 1  | val1    |
| 2  | val2    |
| 3  | val3    |
| 4  | val4    |
+----+---------+

Trong truy vấn trên, không chỉ định giá trị cho cột AUTO_INCREMENT, nên MySQL tự gán dãy số cho cột id. Giá trị 0 cũng có thể gán tường minh để dãy bắt đầu từ 0. Chỉ làm được nếu chế độ SQL NO_AUTO_VALUE_ON_ZERO không bật.

Nếu cột khai báo NOT NULL, có thể gán NULL cho cột đó tạo dãy số.

Khi chèn giá trị vào cột AUTO_INCREMENT, cột đặt thành giá trị đó, dãy số reset để tự tạo giá trị trong phạm vi tuần tự từ giá trị cột lớn nhất.

Cập nhật cột AUTO_INCREMENT hiện có sẽ reset dãy AUTO_INCREMENT. Giá trị AUTO_INCREMENT tự động tạo gần nhất lấy bằng LAST_INSERT_ID() trong SQL hoặc mysql_insert_id() C API.

Các quy tắc dùng thuộc tính AUTO_INCREMENT:

  • Mỗi table chỉ một cột AUTO_INCREMENT, kiểu dữ liệu thường integer.
  • Cột AUTO_INCREMENT cần indexed (PRIMARY KEY hoặc UNIQUE index).
  • Cột AUTO_INCREMENT phải có ràng buộc NOT NULL.
  • Khi đặt AUTO_INCREMENT, MySQL tự thêm NOT NULL cho cột.