1. 程式人生 > 資料庫 >postgresql建立序列查詢序列

postgresql建立序列查詢序列

## 序列號(SERIAL)型別
smallserial(int2),
serial(int4)
bigserial(int8)

DROP TABLE t_student;

CREATE TABLE t_student (
    "Id" serial,
    "Name" VARCHAR (256)
);

## 序列函式

函式                        返回型別            描述
currval(regclass)        bigint            返回最近一次用 nextval 獲取的指定序列的數值
nextval(regclass)        bigint            遞增序列並返回新值
setval(regclass, bigint)    bigint        設定序列的當前數值
setval(regclass, bigint, boolean)    bigint        設定序列的當前數值以及 is_called 標誌

-- 設定序列的當前數值:
 SELECT
    setval(
        '"t_student_Id_seq"' :: regclass,
        100
    );

-- 獲取當前序列值:
SELECT
    currval(
        '"t_student_Id_seq"' :: regclass
    );

-- 遞增序列並返回新值:
SELECT
    nextval(
        '"t_student_Id_seq"' :: regclass
    );

## 建立序列的語法
DROP SEQUENCE seq_test;

CREATE SEQUENCE seq_test INCREMENT BY 2 MINVALUE 1 MAXVALUE 5 START WITH 2 NO CYCLE;


INCREMENT BY : 每次序列增加(或減少)的步長

MINVALUE : 序列最小值,NO MINVALUE表示沒有最小值

MAXVALUE : 序列最大值,NO MAXVALUE表示沒有最大值

START WITH :以什麼序列值開始

CYCLE : 序列是否迴圈使用

OWNED BY : 可以直接指定一個表的欄位,也可以不指定。