您的位置:首页 > 数据库 > Oracle

oracle序列

2015-08-18 10:06 337 查看
–可以使用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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle序列