18、序列
2018-10-22 本文已影响0人
小母牛不生产奶
创建序列
Create sequence myseq
Start with 1
Increment by 1
Order
cache 20
Nocycle;
NextVal,CurrVal
Select myseq.nextval from dual;
Select myseq.currval from dual; (必须先有 nextval,才能有currval)
Insert into table1 values(myseq.nextval) 这时候已经是 2 了
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;