当前位置:首页 > 开发 > 数据库 > 正文

Oracle 复习笔记之序列

发表于: 2014-07-31   作者:eksliang   来源:转载   浏览:
摘要: 转载请出自出处:http://eksliang.iteye.com/blog/2098859 1.序列的作用 序列是用于生成唯一、连续序号的对象 一般用序列来充当数据库表的主键值 2.创建序列语法如下:   create sequence s_emp start with 1 --开始值 increment by 1 --増长值 maxval

转载请出自出处: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 该序列生成或缓冲的最后一个数字

 

 

 

Oracle 复习笔记之序列

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
1.查看Oracle系统是否采用归档模式: col name format a30; select dbid,name,log_mode from v$data
转载请出自出处: http://eksliang.iteye.com/blog/2104444 1、什么事数据流重定向? 这得要由命令
转载请出自出处:http://eksliang.iteye.com/blog/2104444 1、什么事数据流重定向? 这得要由命令的
转载请出自出处:http://eksliang.iteye.com/blog/2104444 1、什么事数据流重定向? 这得要由命令的
1. 在Oracle中完成自动增长的功能,则只能依靠序列完成,所有的自动增长操作,需要用户收工完成处理
1. oracle序列创建语法 CREATE SEQUENCE sequence //创建序列名称 [INCREMENT BY n] //递增的序列值
序列经常用了,但是很快就忘记了,今天通过网上或者自己知道的一些,总结了一下,在这写一下,为了
1.系统合法的shell和/etc/shells的功能 1.1.查看当前系统有多少我们可以使用的合法的shell linux可
1.系统合法的shell和/etc/shells的功能 1.1.查看当前系统有多少我们可以使用的合法的shell linux可
1.系统合法的shell和/etc/shells的功能 1.1.查看当前系统有多少我们可以使用的合法的shell linux可
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号