一、建立序列
CREATE SEQUENCE X_SEQ_MainTain_No
MINVALUE 1
MAXVALUE 99999999999
START WITH 1
INCREMENT BY 1
NOCYCLE
CACHE 20
ORDER ;
MINVALUE 1 --最小值
MAXVALUE 99999999999 --最大值
START WITH 1 --起始數值
INCREMENT BY 1 --每次增加1
NOCYCLE --一直累加不循環
CACHE 20 --緩衝快取
ORDER ; --不知道
二、呼叫序列
定義完成SEQUENCE,就可使用CURRVAL,NEXTVAL
CURRVAL=返回 SEQUENCE的當前值
NEXTVAL=增加SEQUENCE的值,然後回傳 SEQUENCE 值
EXAMPLE:
X_SEQ_Maintain_No.CURRVAL
X_SEQ_Maintain_No.NEXTVAL
可以使用SEQUENCE的地方:
- 不包含子查詢、snapshot、VIEW的 SELECT 語句
- INSERT語句的子查詢中
- NSERT語句的VALUES中
- UPDATE 的 SET中
三、修改序列
你或者是該SEQUENCE的owner,或者有ALTER ANY SEQUENCE權限才能改動SEQUENCE. 可以alter除start至以外的所有SEQUENCE參數.如果想要改變start值,必須 DROP SEQUENCE 再重新建立一個SEQUENCE
Alter SEQUENCE
ALTER SEQUENCE X_SEQ_Maintain_No
INCREMENT BY 10
MAXVALUE 10000
CYCLE -- 到10000後從頭開始
NOCACHE ;
影響SEQUENCE的初始化參數:
SEQUENCE_CACHE_ENTRIES =設置能同時被cache的SEQUENCE數目。
四、刪除序列 DROP SEQUENCE
DROP SEQUENCE X_SEQ_Maintain_No;