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_INCREMENTcần indexed (PRIMARY KEY hoặc UNIQUE index). - Cột
AUTO_INCREMENTphải có ràng buộcNOT NULL. - Khi đặt
AUTO_INCREMENT, MySQL tự thêmNOT NULLcho cột.