Oracle 复习笔记之序列
程序员文章站
2022-04-04 15:47:13
...
转载请出自出处: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 | 该序列生成或缓冲的最后一个数字 |
上一篇: Web前端JS框架AngularJS
下一篇: Linux中添加路由