oracle序列

来源:互联网 发布:mysql 5.6.25安装 编辑:程序博客网 时间:2024/06/15 23:33

–可以使用create sequence语句创建序列
–sequence_name:序列的名称
–start_num:序列开始的第一个整数,默认从1开始
–increment_num:每次增长的数值
–maximum_num:序列能够增长到的最大值
–NOMAXVALUE:对于序列最大值,不指定最大值,对于升序最大值是1027,对于降序是-1
–minimum_num:序列中的最小值,该值必须比start_num小,比maximum_num也要小
–NOMINVALUE:对于序列最小值,不指定最小值,对于升序最小值是1,对于降序最小值是-1026
–CYCLE:对于序列的值达到最大值或最小值时的处理方法。如果是升序达到最大值了,那么下一个生成的值将是最小值;如果是降序达到最小值时,那么下一个值将是最大值。
–NOCYCLE:当序列的值达到最大或最小值时,序列将不再产生任何数值。默认是NOCYCLE。
–cache_num:保存在内存中缓存整数的数量,默认缓存的数量是20,最小的缓存数是2,最大的缓存数是CEIL(maximum_num -minimum_num)/ABS(increment_num)
–NOCACHE:表示没有缓存数字
–ORDER:保证整数的请求顺序是按照生成顺序得到的。
–NOORDER:不保证整数的请求顺序是按照生成顺序得到的

——-使用默认选项创建序列———-
create sequence xulie1;
insert into employee values(xulie1.nextval,’chang’,’女’,to_date(‘2015-8-18’,’yyyy-mm-dd’),’市场部’,2)
–创建序列忽略了其他选项,那么将会使用默认值。
–start_num和increment_num都是1

——-指定相关选项创建序列———-
create sequence xulie2
start with 4 –序列开始的第一个整数,默认从1开始
increment by 1 –每次增长的数值
minvalue 1 – 序列能够增长到的最小值
maxvalue 10 – 序列能够增长到的最大值
cycle
cache 2
order;
//可以使用xulie2.nextval代替主键id、使主键自增长
insert into employee values(xulie2.nextval,’zhu’,’女’,to_date(‘2015-8-18’,’yyyy-mm-dd’),’市场部’,2)

————-创建序列之后,序列可以产生一系列的数值。可以通过currval和nextval来访问它们来获取当前值和下一个值。——

select xulie2.nextval from employee
这里写图片描述
select xulie2.currval from employee
这里写图片描述

—————–修改序列———–
—修改序列可以使用ALTER SEQUENCE语句进行修改。修改有一些限制如下:
—初始值不能修改
–序列的最小值不能大于当前序列的值
–序列的最大值不能小于当前序列的值
–例如
alter sequence xulie2
increment by 2;

select xulie2.nextval from employee
这里写图片描述
select xulie2.currval from employee
这里写图片描述

——删除序列使用DROP SEQUENCE语句–
drop sequence xulie1

select xulie1.currval from employee
这里写图片描述

0 0
原创粉丝点击