Managing Sequences | Sử dụng Sequences trong SQL

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.

 

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận