序列 -- sequence 序列-- 序列是資料庫的一種對象,用於生成一串不重覆的編號,可以遞增或遞減作用:可以為表中列自動產生值由用戶創建資料庫對象來創建序列(sequence),並且可以由多個用戶共用一般用在主鍵或者唯一列 1.創建序列:語法:create sequence 序列名稱start ...
序列
-- sequence 序列
-- 序列是資料庫的一種對象,用於生成一串不重覆的編號,可以遞增或遞減
作用:
可以為表中列自動產生值
由用戶創建資料庫對象來創建序列(sequence),並且可以由多個用戶共用
一般用在主鍵或者唯一列
1.創建序列:
語法:
create sequence 序列名稱
start with 開始數字 預設是1
increment by 增長數字 預設是1
minvalue 最小值 預設是1
maxvalue 最大值 預設是1
cache 批量生成多少個序號,使用完後再生成一批,用於序列的創建優化,預設是20
例子:
create sequence myseq --創建序列名
start with 1 --從1開始
increment by 1 --每次增長1
maxvalue 999999 --最大值 //nomaxvalue(不設置最大值)
minvalue 1 --最小值
cycle --迴圈 //nocycle(一直累加,不迴圈)
nocache --不使用緩存
解釋:從1開始,每次增長1,最大值999999,之後迴圈從1開始。
2.使用序列
-- 序列在使用時,可以使用序列的兩個偽列: CURRVAL -取得序列的當前值,NEXTVAL - 獲取序列的下一個值
-- 序列創建後CURRVAL是沒有值的,必須先使用NEXTVAL獲取下一值,這是序列才會生產一批值
create table test(id number primary key,name varchar2(32));
insert into test values(myseq.nextval,'abc');
insert into test values(myseq.nextval,'ddd');
特別說明:
1、myseq:表示序列的名字,nextval:關鍵字,表示從序列中取下一個值。
2、sequence序列是需要配合number類型的列來使用;
3、sequence序列是要在主鍵或unique列上使用的。
3. 刪除序列
DROP SEQUENCE SEQ_TEST;