Web Cơ Bản

Tự động gán & tăng giá trị (AUTO_INCREMENT) trong MySQL

- Thuộc tính AUTO_INCREMENT thường được dùng trên những cột là khóa chính & có kiểu dữ liệu là số nguyên, chức năng của nó là tự động gán giá trị cho cột khi chúng ta thêm hàng mới vào bên trong bảng (giá trị của hàng đầu tiên được thêm vào bảng là 1, giá trị này sẽ tự động tăng lên một sau mỗi hàng được thêm vào bảng)

Ví dụ:

- Đoạn mã bên dưới được dùng để tạo một cái bảng tên là Products. Trong đó, cột ProductID được thiết lập thuộc tính AUTO_INCREMENT, khi chúng ta chèn một hàng mới vào bên trong bảng thì cột này sẽ tự động được gán giá trị (giá trị sẽ tự động tăng thêm một sau mỗi hàng được chèn vào bảng)

CREATE TABLE Products(
	ProductID INT PRIMARY KEY AUTO_INCREMENT,
	ProductName VARCHAR(255),
	Price INT
);
INSERT INTO Products (ProductName, Price) VALUES ("Kem đánh răng PS muối", 22000);
INSERT INTO Products (ProductName, Price) VALUES ("Nước tăng lực Sting", 9500);
INSERT INTO Products (ProductName, Price) VALUES ("Dầu gội đầu Clear", 87000);

- Sau khi thực thi ba câu lệnh INSERT phía trên thì cái bảng Products sẽ trở thành:

ProductID ProductName Price
1 Kem đánh răng PS muối 22000
2 Nước tăng lực Sting 9500
3 Dầu gội đầu Clear 87000

- Lưu ý: Nếu muốn thay đổi giá trị AUTO_INCREMENT cho hàng chuẩn bị được thêm vào bảng thì các bạn có thể sử dụng cú pháp như sau:

ALTER TABLE table_name AUTO_INCREMENT=value;
Ví dụ:

- Tiếp tục cái bảng Products trong phần ví dụ ở phía trên.

ProductID ProductName Price
1 Kem đánh răng PS muối 22000
2 Nước tăng lực Sting 9500
3 Dầu gội đầu Clear 87000
ALTER TABLE Products AUTO_INCREMENT=95;
INSERT INTO Products (ProductName, Price) VALUES ("Mì hảo hảo tôm chua cay", 3500);
INSERT INTO Products (ProductName, Price) VALUES ("Thẻ điện thoại mobi 10k", 10000);
INSERT INTO Products (ProductName, Price) VALUES ("Dầu ăn Neptune", 31000);

- Sau khi thực thi đoạn mã phía trên thì cái bảng Products sẽ trở thành:

ProductID ProductName Price
1 Kem đánh răng PS muối 22000
2 Nước tăng lực Sting 9500
3 Dầu gội đầu Clear 87000
95 Mì hảo hảo tôm chua cay 35000
96 Dầu ăn Neptune 31000
97 Dầu gội đầu Clear 87000

Thêm thuộc tính AUTO_INCREMENT (khi bảng đã được tạo)

- Đối với trường hợp bảng đã được tạo đó, nhưng do quên thiết lập thuộc tính AUTO_INCREMENT cho cột nên bây giờ các bạn muốn bổ sung, để làm được điều đó thì sử dụng lệnh chỉnh sửa cột rồi thêm AUTO_INCREMENT nằm phía sau tên cột.

ALTER TABLE table_name MODIFY COLUMN column_name DATA TYPE AUTO_INCREMENT;

- Ví dụ, để thêm thuộc tính AUTO_INCREMENT cho cột ProductID (trong cái bảng Products) thì tôi sử dụng câu lệnh như sau.

ALTER TABLE Products MODIFY COLUMN ProductID INT AUTO_INCREMENT;

Xóa thuộc tính AUTO_INCREMENT

- Để xóa thuộc tính AUTO_INCREMENT ra khỏi cột thì chúng ta sử dụng lệnh chỉnh sửa cột rồi loại bỏ từ khóa AUTO_INCREMENT nằm ở phía sau tên cột là được.

- Ví dụ, để xóa thuộc tính AUTO_INCREMENT nằm ở trên cột ProductID (trong cái bảng Products) thì tôi sử dụng câu lệnh như sau.

ALTER TABLE Products MODIFY COLUMN ProductID INT;