2010-05-22

[Oracle] Sequence 取號函數


-- [新增]
CREATE SEQUENCE my_sequence
INCREMENT BY 1
START WITH 1
MAXVALUE 99999999999
NOCYCLE
CACHE 10
;

-- 參數說明:
INCREMENT BY n -- 每次疊加的值(正負數)

START WITH n -- 指定初始值,建立後將無法透過 ALTER 修改

MAXVALUE n -- 最大編號
NOMAXVALUE -- (預設)不設置最大值,由系統上限決定

MINVALUE n -- 最小編號
NOMINVALUE -- (預設 1)不設置最小值

CYCLE -- 當取至最大值後,是否循環再由最小值開始
NOCYCLE -- (預設)不設置循環,當超過限制時將返回異常

CACHE n -- (預設 20)系統會一次取出 n 個數作為快取,但會造成跳號的現象
NOCACHE -- 不使用快取,保證在產生的編號中沒有跳號,但這樣會降低性能.



-- [修改]
ALTER SEQUENCE my_sequence
INCREMENT BY 10
MAXVALUE 10000
CYCLE
NOCACHE
;



-- [刪除]
DROP SEQUENCE my_sequence;



-- [使用方式]
my_sequence.CURRVAL -- 返回序號的當前值
my_sequence.NEXTVAL -- 增加序號的值,然後返回序號值



參考來源:
Oracle 產生自動編號方式

0 回應: