oracle中没有自增类型的字段的,所以凡是情况下需要定义一个sequence来做为主动增长类型字段的数据。 于是记录了一些关于oracle sequence的材料,已备查用! Oracle中的序列(sequence) 1: 若何定义一个序列 仅向前的数字变量(和SQL中的主动编号有点像 identity(1,2) ) 格局: create sequence start with increment by [maxvalue 值] [minvalue 值] [cycle 当抵达更大值的时候,将持续从头起头] [Nocycle -- 不断累加,不轮回] [Cache ] 留意: 第一次NEXTVAL返回的是初始值;随后的NEXTVAL会主动增加你定义的INCREMENT BY值,然后返回增加后的值。
CURRVAL 老是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才气利用CURRVAL,不然会出错。一次NEXTVAL会增加一次 SEQUENCE的值。 若是指定CACHE值,ORACLE就能够预先在内存里面放置一些sequence,如许存取的快些。
cache里面的取完后,oracle主动再取一组到cache。 利用cache或许会跳号, 好比数据库突然不一般down掉(shutdown abort),cache中的sequence就会丧失。 所以能够在create sequence的时候用nocache避免那种情况。
example: create sequence mySeq start with 1 increment by 2 maxvalue 40 minvalue 1 cycle
以上是我关于那个问题的解答,希望可以帮到各人。