Oracle中的序列號顧名思義就是創建一個序列號,可以在插入或者更新的時候調用,相當於是一個生成器
創建語法:
create sequence myse
increment by 1 --增長度
start with 1 --從哪裏增加,就是說下一個獲取的值從這個值開始
nomaxvalue --不設置最大值 對應的:maxvalue 30、
order --指定一定往下增加
nocycle --不循環,CYCLE和NOCYCLE 表示當序列生成器的值達到限制值後是否循 環
cache 10 --CACHE(緩衝)定義存放序列的內存塊的大小,默認爲20。NOCACHE表示不對序列進行內存緩衝。對序列進行內存緩衝,可以改善序列的性能
修改:
序列的某些部分也可以在使用中進行修改,但不能修改SATRT WITH選項。對序列的修改隻影響隨後產生的序號,已經產生的序號不變。修改序列的語法如下:
ALTER SEQUENCE emp_sequence
INCREMENT BY 10
MAXVALUE 10000
CYCLE -- 到10000後從頭開始
NOCACHE ;
需注意:
第一次NEXTVAL返回的是初始值;隨後的NEXTVAL會自動增加你定義的INCREMENT BY值,然後返回增加後的值。CURRVAL 總是返回當前SEQUENCE的值,但是在第一次NEXTVAL初始化之後才能使用CURRVAL,否則會出錯。一次NEXTVAL會增加一次SEQUENCE的值,所以如果你在同一個語句裏面使用多個NEXTVAL,其值就是不一樣的。
刪除:
DROP SEQUENCE order_seq;