Hãy để chúng tôi hiểu cách làm việc với các cột AUTO_INCREMENT trong MySQL -
Thuộc tính AUTO_INCREMENT được sử dụng để tạo mã nhận dạng duy nhất cho các hàng mới. Hãy để chúng tôi xem câu lệnh này hoạt động như thế nào. Trước đó, hãy xem xét truy vấn dưới đây -
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;
Đầu ra
+----+---------+ | id | name | +----+---------+ | 1 | val1 | | 2 | val2 | | 3 | val3 | | 4 | val4 | +----+---------+
Trong truy vấn trên, không có giá trị nào được chỉ định cho cột ‘AUTO_INCREMENT’, do đó MySQL tự động gán một chuỗi số cho cột ‘id’. Giá trị 0 cũng có thể được chỉ định rõ ràng để dãy số bắt đầu từ 0. Điều này chỉ có thể được thực hiện nếu chế độ SQL ‘KHÔNG CÓ GIÁ TRỊ TỰ ĐỘNG ON ZERO’ không được bật.
Nếu một cột được khai báo là "NOT NULL", có thể gán NULL cho cột đó để tạo ra một chuỗi số.
Khi bất kỳ giá trị nào được chèn vào cột AUTO_INCREMENT, cột sẽ được đặt thành giá trị đó và chuỗi cũng được đặt lại để tự động tạo giá trị, trong phạm vi tuần tự từ giá trị cột lớn nhất.
Có thể cập nhật cột ‘AUTO_INCREMENT’ hiện có, cột này cũng sẽ đặt lại trình tự ‘AUTO_INCREMENT’. ‘AUTO_INCREMENT được tạo tự động gần đây nhất; giá trị có thể được truy xuất bằng cách sử dụng hàm ‘LAST_INSERT_ID ()’ trong SQL hoặc sử dụng ‘mysql_insert_id ()’ là một hàm API C.
Cần tuân thủ các quy tắc sau khi sử dụng thuộc tính AUTO_INCREMENT -
-
Mỗi bảng chỉ có một cột AUTO_INCREMENT có kiểu dữ liệu thường là số nguyên.
-
Cột AUTO_INCREMENT cần được lập chỉ mục. Điều này có nghĩa là nó có thể là một TỪ KHÓA CHÍNH hoặc một chỉ mục DUY NHẤT.
-
Cột AUTO_INCREMENT phải có ràng buộc NOT NULL.
-
Khi thuộc tính AUTO_INCREMENT được đặt thành một cột, MySQL sẽ tự động thêm ràng buộc NOT NULL vào cột đó.