SEQUENCE trong SQL
SEQUENCE là một tập hợp các số nguyên được tạo thứ tự theo yêu cầu. Các SEQUENCE thường được sử dụng trong cơ sở dữ liệu vì đáp ứng yêu cầu của nhiều ứng dụng là đòi hỏi mỗi hàng trong một bảng chứa một giá trị duy nhất tương tự như khóa chính.
Bài viết sẽ cung cấp cho bạn cú pháp, cách sử dụng và những ví dụ về SEQUENCE trong MySQL.
Sử dụng AUTO_INCREMENT column
Cách đơn giản nhất trong MySQL để sử dụng các SEQUENCE là định nghĩa một cột là AUTO_INCREMENT.
Ví dụ: Tạo bảng và chèn một số hàng vào trong bảng này, không bắt buộc cung cấp ID vì nó được tự động đánh số bởi MySQL.
- Tạo bảng NHANVIEN:
mysql> CREATE TABLE NHANVIEN
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
ten VARCHAR(30) NOT NULL,
ngaysinh DATE NOT NULL,
quequan VARCHAR(30) NOT NULL
);
Query OK, 0 rows affected (0.02 sec)
- Chèn dữ liệu vào bảng:
mysql> INSERT INTO NHANVIEN (id,ten,ngaysinh,quequan) VALUES
(NULL,'Huy','1999-06-23','Hanoi'),
INSERT INTO NHANVIEN (id,ten,ngaysinh,quequan) VALUES(NULL,'Hung','1990-05-21','Haiduong'),
INSERT INTO NHANVIEN (id,ten,ngaysinh,quequan) VALUES(NULL,'Huyen','1995-02-12','Hanoi');
Query OK, 3 rows affected (0.02 sec)
Records: 3 Duplicates: 0 Warnings: 0
- Select dữ liệu từ bảng NHANVIEN:
mysql> SELECT * FROM NHANVIEN ORDER BY id; +----+-------------+------------+------------+ | id | ten | ngaysinh | quequan | +----+-------------+------------+------------+ | 1 | Huy | 1999-06-23 | Hanoi | | 2 | Hung | 1990-05-21 | Haiduong | | 3 | Huyen | 1995-02-12 | Hanoi | +----+-------------+------------+------------+ 3 rows in set (0.00 sec)
Thay đổi số thứ tự một SEQUENCE đang tồn tại
Sẽ có trường hợp bạn phải xóa nhiều bản ghi từ một bảng và muốn sắp xếp lại thứ tự các bản ghi. Để thực hiện điều này bạn chỉ cần sử dụng một mẹo đơn giản, nhưng nên cẩn thận và kiểm tra xem bảng của bạn có đang join với một bảng khác hay không.
Nếu đã quyết định đánh số lại một cột AUTO_INCREMENT thì bạn thực hiện bằng cách xóa cột này từ bảng, sau đó thêm lại. Ví dụ sau minh họa cách đánh số lại các giá trị id trong bảng NHANVIEN bởi sử dụng kỹ thuật này.
Ví dụ sau minh họa cách đánh số lại các giá trị id trong bảng NHANVIEN sử dụng kỹ thuật này:
mysql> ALTER TABLE NHANVIEN DROP id;
mysql> ALTER TABLE NHANVIEN
ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (id);
Bắt đầu SEQUENCE tại một giá trị cụ thể
Theo mặc định, MySQL sẽ bắt đầu SEQUENCE từ 1, nhưng bạn cũng có thể chỉ định bất kỳ số nào khác tại thời điểm tạo bảng.
Ví dụ sau sẽ bắt đầu SEQUENCE từ 100:
mysql> CREATE TABLE NHANVIEN (
id INT UNSIGNED NOT NULL AUTO_INCREMENT = 100,
PRIMARY KEY (id),
ten VARCHAR(30) NOT NULL,
ngaysinh DATE NOT NULL,
quequan VARCHAR(30) NOT NULL
);
Ngoài ra, bạn có thể tạo bảng và sau đó đặt giá trị khởi tạo cho SEQUENCE bằng lệnh ALTER TABLE.
mysql> ALTER TABLE t AUTO_INCREMENT = 100;
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:


Cũ vẫn chất
-
4 cách kiểm tra lịch sử giao dịch BIDV trên điện thoại, máy tính
Hôm qua -
Cách dùng Terabox lưu trữ với 1TB miễn phí
Hôm qua 5 -
Hàm COUNTIFS, cách dùng hàm đếm ô theo nhiều điều kiện trong Excel
Hôm qua -
Các cách làm, tùy chỉnh trong bài sẽ giúp tăng tốc Windows 10 của bạn "nhanh như gió"
Hôm qua 6 -
Cách sửa lỗi không thấy bộ điều hợp mạng trên Windows 10
Hôm qua -
Dynamic System Updates là gì?
Hôm qua -
Sạc không dây là gì? Nó nhanh hơn hay chậm hơn sạc dây? Danh sách smartphone Android hỗ trợ sạc không dây
Hôm qua -
Valentine đen là gì? Valentine đen là ngày nào?
Hôm qua -
Cách chặn từ khóa và Hashtag trên Twitter
Hôm qua -
Cách sao chép hoặc tạo bản sao toàn bộ trang tính trong Google Sheets
Hôm qua