创建序列

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

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

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 1CREATE SEQUENCE 序列名                    --关键字                              
 2create sequence table_S
 3        [INCREMENT BY n]                     --增长度,默认为1,可以是负值          
 4        [START WITH n]                       --从哪里增加,即第一个值,默认1       
 5        [{MINVALUE/ MAXVALUE n|NOMAXVALUE}]  --最小值/最大值/无最大值(默认)           
 6        [{CYCLE|NOCYCLE}]                    --是否循环,如果不循环,到最大值后会出错    
 7        [{CACHE n|NOCACHE}];                 --内存缓冲,默认是20,可改善系统性能       
 8
 9create sequence table_S
10        increment by 1
11        start with 1
12        minvalue 1 maxvalue 999999
13        nocycle
14        cache 10;

 

    修改: 序列的某些部分可以在使用中进行修改,但不能修改SATRT WITH选项。对序列的修改只影响随后产生的序号,已经产生的序号不变。
    修改序列的语法如下:
1 ALTER  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,其值就是不一样的。

删除:
1 DROP  SEQUENCE order_seq;

    删除序列的人应该是序列的创建者或拥有DROP ANY SEQUENCE系统权限的用户。序列一旦删除就不能被引用了。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值