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

MySQL AUTO_INCREMENT với ví dụ

Hiểu cách AUTO_INCREMENT hoạt động.

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 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 hàm này connection-specific, giá trị trả về không bị ảnh hưởng bởi kết nối khác insert.
  • Kiểu dữ liệu integer nhỏ nhất cho cột AUTO_INCREMENT có thể dùng, đủ lớn chứa giá trị dãy tối đa user yêu cầu.
  • Khi cột đạt giới hạn trên của kiểu dữ liệu, thử tạo dãy số lại nhưng thất bại.

Do đó, dùng thuộc tính UNSIGNED nếu có thể để cho phép phạm vi giá trị lớn hơn trong cột AUTO_INCREMENT.