Sequences trong SQL là các đối tượng cơ sở dữ liệu được sử dụng để tạo ra một chuỗi các số duy nhất, thường được sử dụng để tạo giá trị cho các cột khóa chính tự động. Sequences rất hữu ích khi bạn cần tạo giá trị duy nhất mà không cần phải lo lắng về việc trùng lặp.
Managing Sequences | Sử dụng Sequences trong SQL
Tạo Sequence
CREATE SEQUENCE sequence_name
START WITH initial_value
INCREMENT BY increment_value
[ { MAXVALUE max_value | NOMAXVALUE } ]
[ { MINVALUE min_value | NOMINVALUE } ]
[ { CYCLE | NOCYCLE } ]
[ { CACHE cache_size | NOCACHE } ];
- sequence_name: Tên của sequence.
- START WITH initial_value: Giá trị bắt đầu của sequence.
- INCREMENT BY increment_value: Giá trị tăng sau mỗi lần gọi sequence.
- MAXVALUE max_value | NOMAXVALUE: Giá trị lớn nhất mà sequence có thể tạo ra.
- MINVALUE min_value | NOMINVALUE: Giá trị nhỏ nhất mà sequence có thể tạo ra.
- CYCLE | NOCYCLE: Xác định liệu sequence có lặp lại khi đạt đến giá trị tối đa hay không.
- CACHE cache_size | NOCACHE: Số lượng giá trị sequence được lưu trong bộ nhớ để cải thiện hiệu suất.
Ví dụ Tạo Sequence
Tạo một sequence bắt đầu từ 1, tăng dần 1 đơn vị:
CREATE SEQUENCE employee_seq START WITH 1 INCREMENT BY 1 NOMAXVALUE NOCYCLE CACHE 20;
Sử Dụng Sequence
Sequence có thể được sử dụng trong các câu lệnh SQL để tạo giá trị mới. Ví dụ, để thêm một bản ghi mới vào bảng employees sử dụng employee_seq:
INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, job_id, salary) VALUES (employee_seq.NEXTVAL, 'John', 'Doe', 'john.doe@example.com', SYSDATE, 'IT_PROG', 6000);
- NEXTVAL: Trả về giá trị tiếp theo của sequence và tăng sequence.
- CURRVAL: Trả về giá trị hiện tại của sequence mà không tăng sequence.
Cập Nhật Sequence
Bạn có thể thay đổi các thuộc tính của sequence bằng cách sử dụng câu lệnh ALTER SEQUENCE:
ALTER SEQUENCE employee_seq INCREMENT BY 2 MAXVALUE 10000 CYCLE;
Xóa Sequence
DROP SEQUENCE employee_seq;
Ví Dụ Thực Tế
Tạo Sequence cho Bảng orders
CREATE SEQUENCE order_seq START WITH 1000 INCREMENT BY 1 NOMAXVALUE NOCYCLE CACHE 20;
Sử Dụng Sequence trong Câu Lệnh INSERT
INSERT INTO orders (order_id, customer_id, order_date, status) VALUES (order_seq.NEXTVAL, 123, SYSDATE, 'PENDING');
Tóm lại:
- CREATE SEQUENCE: Tạo một sequence mới với các thuộc tính xác định.
- NEXTVAL: Lấy giá trị tiếp theo từ sequence và tăng sequence.
- CURRVAL: Lấy giá trị hiện tại của sequence mà không tăng sequence.
- ALTER SEQUENCE: Thay đổi các thuộc tính của sequence.
- DROP SEQUENCE: Xóa một sequence.
Sequences rất hữu ích trong việc tạo ra các giá trị duy nhất và tự động cho các cột khóa chính, giúp đảm bảo tính toàn vẹn và duy nhất của dữ liệu trong cơ sở dữ liệu. Quản lý sequences đúng cách sẽ giúp cải thiện hiệu suất và đơn giản hóa quá trình phát triển ứng dụng cơ sở dữ liệu.

Booked
Enfold Responsive MultiPurpose Theme
eForm Pro
Alone – Charity Multipurpose Non-profit WordPress Theme
Hotel + Bed and Breakfast Booking Calendar Theme | Bellevue
StudioPress Foodie Pro Genesis WordPress Theme
Hotel Master Booking WordPress
Rank Math SEO Pro
The7 - Ultimate Website & Online Store Builder for WordPress and WooCommerce
Dante Responsive Multipurpose Wordpress Theme
Startit - Startup Business Theme
Avada Theme
Porto | Multipurpose & WooCommerce Theme
Massive Dynamic - WordPress Website Builder
RT-Theme 18 Responsive WordPress Theme
907 - Responsive Multi-Purpose WordPress Theme
AdForest - Classified Ads WordPress Theme
Ronneby - High-Performance WordPress Theme
Oshine - Multipurpose Creative WordPress Theme
Woffice - Intranet Extranet & Project Management WordPress Theme
Bingo - Newspaper & Magazine WordPress Theme
Convertio - Conversion Optimized Landing Page Theme
Zephyr - Material Design Theme
Essentials - Multipurpose WordPress Theme
Pearl - Corporate Business WordPress Theme
StudioPress Agency Pro Genesis WordPress Theme
TheFox - Responsive Multi-Purpose WordPress Theme
Total - Responsive Multi-Purpose WordPress Theme
Eduma - Education WordPress Theme
Google Tag Manager for WooCommerce PRO
WooCommerce PayPal Advanced
WooCommerce Paymill Gateway
Ohio - Creative Portfolio & Agency WordPress Theme
WooCommerce Purchase Order Gateway
B2BKing - The Ultimate WooCommerce B2B & Wholesale Plugin
Rise - Business & Consulting WordPress Theme
Product Designer
WooCommerce Aramex
WP Timeline
Bookory - Book Store WooCommerce Theme
Residence Real Estate WordPress Theme
YITH WooCommerce Quick View Premium
YITH WooCommerce Product Countdown Premium
YITH WooCommerce Dynamic Pricing and Discounts Premium
YITH WooCommerce Compare Premium