Oraclesequence序列的用法是怎样的?

22小时前 (16:54:01)阅读1回复0
dyyh
dyyh
  • 管理员
  • 注册排名7
  • 经验值29120
  • 级别管理员
  • 主题5824
  • 回复0
楼主

  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

以上是我关于那个问题的解答,希望可以帮到各人。

0
回帖

Oraclesequence序列的用法是怎样的? 期待您的回复!

取消