Oracle 复习笔记之序列

转载请出自出处:http://eksliang.iteye.com/blog/2098859

1.序列的作用

  • 序列是用于生成唯一、连续序号的对象
  • 一般用序列来充当数据库表的主键值

2.创建序列语法如下:

 

create sequence s_emp
start with 1      --开始值
increment by 1    --増长值
maxvalue 99999999999 --最大值
minvalue 1           --最小值
cycle                --是否重新开始NOCYCLE 
cache 20             --缓存中的个数,默认是开启的20个
;

参数说明:

  • cycle:当序列达到最大值时或者最小值时,是否继续生成整数。当升序达到最大值时,下一生成的值是最小值。当降序生成达到最大值时,下一生成的值时最大值。
  • nocycle:指定序列生成到最大值或者最小值时,不能再继续生成整数,nocycle是默认值。
  • NOMAXVALUE:为升序指定最大值为1027,为降序指定最大值为-1。
  • NOMINVALUE:为升序指定最小值为1。为降序指定最小值为-1026。

   备注:容许设计缺省序列,不需指定任何子句。该序列为上升序列,由1开始,增量为1,没有上限。 

 

    例如:create sequence s_emp;

 

3.删除序列语法如下:

 

 DROP SEQUENCE [user.]sequence_name;

 

 

4.修改序列语法如下:

   例如:将最大值修改为300,缓冲修改为30

 

alter sequence sequence_name
maxvalue 300 cache 30;

 

   修改序列时需要注意几点:

  •  不能修改序列的初始值
  •  start with选项不能修改
  • 序列的最小值不能大于当前值(currval)
  • 序列的最大值不能小于当前值(currval)
  • 在实际开发中,我一般是这样做的,不存在修改,都是直接删除后然后创建,这样多简单。

 

 

5.使用序列:

  

select s_emp.nextval from dual;
select s_emp.currval from dual;

       使用序列时,必须通过伪列nextval和currval引用序列,其中伪列nextval用于返回下一个序列号,而伪列currval用于返回当前序列号。需要注意的是,首次使用序列时,必须使用伪列nextval.

 

 

6:获取序列相关的信息

如果希望查询当前用户定义的序列值,那么可以使用user_sequences视图

select * from user_sequences;

 含义如下:

描述
SEQUENCE_NAME序列名
MIN_VALUE最小值
MAX_VALUE最大值
INCREMENT_BY序列增量
CYCLE_FLAG是否循环(Y/N)
CACHE_SIZE缓冲区大小
LAST_NUMBER该序列生成或缓冲的最后一个数字

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值