十三、Oracle中的序列

目錄

13.1. 創建序列

13.2. NextVal,CurrVal

13.3. Cycle,Cache


13.1. 創建序列

Create sequence myseq

Start with 1 

Increment by 1 

Order

cache 20

Nocycle;

 


13.2. NextVal,CurrVal

Select myseq.nextval from dual;

Select myseq.currval from dual; (必須先有 nextval,纔能有currval) 

Insert into table1 values(myseq.nextval) 這時候已經是 2 了

 


13.3. Cycle,Cache

而用了 nocycle,就可以確保當該序列用於多張表的時候,ID 是唯一的 

用 cycle 時,用法如下:

 create sequence myseq2

start with 1

increment by 1

cycle maxvalue 3

nocache ;

這樣到 3 之後,要會重新從 1 開始 

 


如果指定 CACHE 值,ORACLE就可以預先在內存裏面放置一些 sequence,這樣存取的快些。cache裏面的取完後,oracle自動再取一組到cache。使用 cache或許會跳號,比如數據庫突然不正常 down 掉(shutdown abort),cache中的sequence就會丟失. 所以可以在create sequence的時候用nocache防止這種情況 

不能改變當前值,但是可以改變增量Alter sequence myseq increment by 3; 

發佈了102 篇原創文章 · 獲贊 14 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章