Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để đặt giá trị ban đầu và số tự động 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. 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ác hàm này dành riêng cho kết nối, có nghĩa là giá trị trả về của chúng không bị ảnh hưởng bởi các kết nối khác thực hiện các thao tác chèn. Có thể sử dụng kiểu dữ liệu số nguyên nhỏ nhất cho cột ‘AUTO_INCREMENT’, đủ lớn để chứa giá trị trình tự lớn nhất mà người dùng yêu cầu.

Quy tắc cho AUTO_INCREMENT

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à aninteger.

  • 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 ĐẠI DIỆN 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 đó.

Nếu cột id chưa được thêm vào bảng, bạn có thể sử dụng câu lệnh dưới đây -

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

Nếu đã có cột id thì có thể sử dụng lệnh dưới đây -

ALTER TABLE tableName AUTO_INCREMENT=specificValue;

Ở đây, tableName đề cập đến tên của bảng mà cột ‘AUTO_INCREMENT’ cần được đặt. ‘SpecificValue’ đề cập đến một số nguyên mà từ đó giá trị ‘AUTO_INCREMENT’ được người dùng chỉ định để bắt đầu.