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

Cách đặt giá trị khởi tạo và AUTO_INCREMENT trong MySQL

Thuộc tính AUTO_INCREMENT dùng tạo định danh duy nhất cho hàng mới. 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 bất kỳ giá trị nào vào cột AUTO_INCREMENT, cột được đặt thành giá trị đó, và dãy số cũng reset để tự động 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 nữa. Giá trị AUTO_INCREMENT tự động tạo gần nhất có thể lấy bằng hàm LAST_INSERT_ID() trong SQL hoặc hàm C API mysql_insert_id().

Các hàm này connection-specific, nghĩa là giá trị trả về không bị ảnh hưởng bởi kết nối khác thực hiện 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.

Quy tắc cho AUTO_INCREMENT

Các quy tắc sau cần tuân thủ khi dùng thuộc tính AUTO_INCREMENT:

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

Nếu cột id chưa thêm vào table, dùng câu lệnh:

ALTER TABLE tableName ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (id);

Nếu cột id đã có, dùng lệnh:

ALTER TABLE tableName AUTO_INCREMENT=specificValue;

tableName là tên table cần đặt cột AUTO_INCREMENT. specificValue là số nguyên từ đó giá trị AUTO_INCREMENT bắt đầu theo chỉ định user.