目錄
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;