创建序列

    Oracle中的序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。

    创建序列需要CREATE SEQUENCE系统权限。序列的创建语法如下:

 

Code

 

    修改: 序列的某些部分可以在使用中进行修改,但不能修改SATRT WITH选项。对序列的修改只影响随后产生的序号,已经产生的序号不变。
    修改序列的语法如下:
1ALTER SEQUENCE table_S
2        INCREMENT BY 10 
3        MAXVALUE 10000 
4        CYCLE                         -- 到10000后从头开始 
5         NOCACHE ; 
6

P.S:
第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。

删除:
1DROP SEQUENCE order_seq;

    删除序列的人应该是序列的创建者或拥有DROP ANY SEQUENCE系统权限的用户。序列一旦删除就不能被引用了。
 
posted @ 2009-08-06 11:21  郭振斌  阅读(2743)  评论(0编辑  收藏  举报