[Database] - Sequence
Sequence 實戰
Sequence 就是「序列號」的意思
使用時機: 通常需要「排序」或是希望拿取一個數字當作「唯一的值」去處理時,就可以使用到,
使用方法:每次向
Sequence
拿取時,他會將當前數自動增加一個指定的值,並返回給你,通常都是+1
Sequence 實戰
- 我們先建立一個 sequence
1
2
3
4
5
6
7create sequence order_id_seq increment by 1 minvalue 1 no maxvalue start with 1;
incerment: 每次增加的數值
start : Sequence 開始的數值
maxvalue : Sequence 的最大值
minvalue : Sequence 的最小值
nocycle : 當 Sequence 達到最大值時,不重頭開始
- 利用指令
\d
看剛剛建立的資料表結構1
\d order_id_seq
- 我們可以建立一個 table,當輸入資料時,
id
會透過我們剛建立的order_id_seq
每次自動 +11
create table order_id (id int4 not null default nextval('order_id_seq'),name text);
- 我們輸入一筆資料並將他 select 出來
- 取得下一筆 sequence
1
select * from nextval('order_id_seq');
- 查看最新一筆 sequence
1
select currval('order_id_seq');
- 刪除 sequence
1
DROP SEQUENCE order_id_seq