Danh sách Tutorial

[PostgreSQL] Tạo và quản lý Sequence


Giới thiệu về Sequence

Sequence là một đối tượng dữ liệu trong PostgreSQL, được sử dụng để tạo ra chuỗi các số tự nhiên (integer) theo 1 quy tắc nhất định. Để tạo 1 Sequece chúng ta sử dụng câu lệnh SQL là: CREATE SEQUENCE

Tạo Sequence (CREATE SEQUENCE)

Cú pháp lệnh: 

CREATE [ TEMPORARY | TEMP ] SEQUENCE [ IF NOT EXISTS ] <sequence_name>
[ AS <data_type> ]
[ INCREMENT [ BY ] <increment >]
[ MINVALUE <minvalue> | NO MINVALUE ] [ MAXVALUE <maxvalue> | NO MAXVALUE ]
[ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
[ OWNED BY { table_name.column_name | NONE } ]

Với:

  • <sequence_name>: Tên của sequence
  • <data_type>: Chỉ ra kiểu dữ liệu của sequence (smallint, integer, và bigint), mặc định là bigint
  • <increment >: Giá trị bổ sung vào chuỗi, giá trị có thể là 1 số dương (2) hoặc 1 số âm (-1), mặc định là 1
  • <minvalue>: Xác định giá trị tối thiểu một chuỗi có thể tạo ra. Nếu set giá trị hoặc NO MINVALUE được chỉ định, thì giá trị mặc định sẽ được sử dụng. Giá trị mặc định cho một chuỗi tăng dần là 1. Giá trị mặc định cho một chuỗi giảm dần là giá trị tối thiểu của kiểu dữ liệu.
  • <maxvalue>: Xác định giá trị tối đa một chuỗi có thể tạo ra. Nếu set giá trị hoặc NO MAXVALUE được chỉ định, thì giá trị mặc định sẽ được sử dụng. Giá trị mặc định cho một chuỗi tăng dần là giá trị tối đa của kiểu dữ liệu. Giá trị mặc định cho một chuỗi giảm dần là -1.
  • <start>: Giá trị bắt đầu của chuỗi. Giá trị mặc định là bắt đầu là <minvalue> cho chuỗi tăng dần và  <maxvalue> cho chuỗi giảm dần.

Ví dụ: Tạo một chuỗi sequence tăng dần có tên là vinasupport_sequence

CREATE SEQUENCE vinasupport_sequence
INCREMENT 1
START 100;

Nó sẽ tạo ra 1 chỗ sequence bắt đầu với 100 và mỗi 1 bản ghi insert vào sẽ tăng lên 1 đơn vị.

Để kiểm tra giá trị kế tiếp của 1 sequence trên chúng ta dùng câu SQL sau:

SELECT nextval('vinasupport_sequence');

Liệt kê danh sách Sequence

SELECT
    c.relname sequence_name
FROM 
    pg_class 
WHERE 
    relkind = 'S';

Hoặc sử dụng command \ds

Xóa Sequence (DROP SEQUENCE)

Cú pháp lệnh: 

DROP SEQUENCE [ IF EXISTS ] <squence_name> [, …] [ CASCADE | RESTRICT ]

Với:

  • <squence_name>: Tên của sequence

Ví dụ: Xóa sequence “vinasupport_sequence

DROP SEQUENCE vinasupport_sequence

 

 

SHARE

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web