oracle序列的增、刪、改、查及使用
----------------------------------------------------------------------建立序列:
示例:
CREATE SEQUENCE SEQ_SSSS #建立序列名為SEQ_SSSS的序列
INCREMENT BY 1 #增值值為1(負數表示遞減,如-1)
START WITH 1 #初始值為1
NOMAXvalue #不限制最大值
NOCYCLE #不迴圈
NOCACHE;
語法 CREATE SEQUENCE 序列名 [相關引數]
引數說明
INCREMENT BY :序列變化的步進,負值表示遞減。(預設1)
START WITH:序列的初始值 。(預設1)
MAXvalue:序列可生成的最大值。(預設不限制最大值,NOMAXVALUE)
MINVALUE:序列可生成的最小值。(預設不限制最小值,NOMINVALUE)
CYCLE:用於定義當序列產生的值達到限制值後是否迴圈(NOCYCLE:不迴圈,CYCLE:迴圈)。
CACHE:表示快取序列的個數,資料庫異常終止可能會導致序列中斷不連續的情況,預設值為20,如果不使用快取可設定NOCACHE
-------------------------------------------------------------------------------------將序列插入表中:
語法:
insert into tb_name(id) values (seq_name.nextval) #seq_name為已建立的序列名稱
示例:
insert into tb_order_info(id) values (SEQ_SSSS.nextval) #seq_name為已建立的序列名稱
-------------------------------------------------------------------------------------------檢視當前序列:
語法:
select seq_name.nextval from dual;
示例:
select SEQ_SSSS.nextval from dual; #SEQ_SSSS為已建立的序列名稱
----------------------------------------------------------------------------------------------修改序列:
語法:
alter sequence 序列名稱 increment by 2; #正數表示在當前的序列數上加,和為新的序列數;負數表示在當前的序列數上減,差為新的序列數;
示例:
alter sequence SEQ_SSSS increment by 15; #SEQ_SSSS為已建立的序列名稱,當前序列加15為新的序列數
alter sequence SEQ_SSSS increment by -3; #SEQ_SSSS為已建立的序列名稱,當前序列減3為新的序列數
---------------------------------------------------------------------------------------------------刪除序列:
語法:
drop sequence seq_name
示例:
drop sequence SEQ_SSSS #刪除序列 SEQ_SSSS
參考原文:
https://blog.csdn.net/hu_dongyang/article/details/79039737