Trong MySQL, bạn có thể sử dụng tính năng tự động gán và tăng giá trị cho các cột số nguyên bằng cách sử dụng từ khóa AUTO_INCREMENT. Tính năng này thường được sử dụng cho các cột khóa chính (primary key) để tự động tạo ra các giá trị duy nhất và tăng dần mỗi khi một bản ghi mới được thêm vào bảng.
Cú pháp và ví dụ
Để sử dụng AUTO_INCREMENT trong MySQL, bạn cần chỉ định cho cột cần tự động tăng giá trị là AUTO_INCREMENT trong định nghĩa bảng. Ví dụ, chúng ta có bảng users có cột id là khóa chính và được tự động tăng giá trị:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL
);
Trong đó:
id INT AUTO_INCREMENT PRIMARY KEY: Định nghĩa cột id là một số nguyên (INT), có thuộc tính AUTO_INCREMENT để tự động tăng giá trị và là khóa chính (PRIMARY KEY).
Thêm dữ liệu vào bảng
Khi thêm bản ghi mới vào bảng users, bạn không cần cung cấp giá trị cho cột id, MySQL sẽ tự động tạo và tăng giá trị cho cột này:
INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');
Sau khi thêm bản ghi trên, nếu bạn truy vấn lại bảng users, bạn sẽ thấy cột id đã tự động được gán giá trị:
+----+-----------+---------------------+
| id | username | email |
+----+-----------+---------------------+
| 1 | john_doe | john@example.com |
+----+-----------+---------------------+
Lấy giá trị AUTO_INCREMENT mới
Nếu bạn cần lấy giá trị id của bản ghi vừa được thêm vào (thường được sử dụng trong các trường hợp cần thực hiện sau khi thêm dữ liệu), bạn có thể sử dụng hàm LAST_INSERT_ID() của MySQL:
INSERT INTO users (username, email) VALUES ('jane_smith', 'jane@example.com');
SELECT LAST_INSERT_ID();
Hàm LAST_INSERT_ID() sẽ trả về giá trị của cột id của bản ghi vừa thêm vào.
Lưu ý
- Chỉ một cột trong mỗi bảng có thể được định nghĩa là
AUTO_INCREMENT.
- Giá trị của cột
AUTO_INCREMENT sẽ tăng tự động mỗi khi một bản ghi mới được thêm vào, trừ khi bạn cung cấp một giá trị cụ thể cho cột AUTO_INCREMENT.
- Khi bảng được xóa hoặc reset, giá trị
AUTO_INCREMENT sẽ được đặt lại từ giá trị ban đầu (thường là 1).
Tính năng AUTO_INCREMENT trong MySQL rất hữu ích để quản lý và tạo các khóa chính duy nhất một cách dễ dàng và hiệu quả trong các bảng cơ sở dữ liệu quan hệ.