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

oracle中序列讲解!

2011-04-25 15:49 274 查看
序列(sequence):

生成一个整数序列
通常用来填充数字类型的主键列
创建序列语法:
create sequence seq_name
[start with start_num]
[increment by incre_num]
[maxvalue max_num | nomaxvalue]
[minvalue min_num | nominvalue]

创建序列语法(续1):
[cycle | nocycle]

nomaxvalue指定升序序列的最大值为10^27,降序序列的最大值为-1,为缺省值
nominvalue指定升序序列的最小值为1,降序序列的最小值为-10^26,为缺省值
创建序列语法(续2):
cycle指定升序序列达到最大值时,下一个生成的值是最小值,降序序列类似
max_num >= start_num
max_num > min_num

一般选择nocache选项,避免序列不连续
例1:
create sequence seq1
seq1序列全部采用缺省参数,起始值和增长值都是1
例2:
create sequence seq2
start with 10 increment by 5
起始值为10,增长值为5
例3:
create sequence seq3
start with 10 increment by -1
minvalue 1 maxvalue 10
cycle cache 5
创建一个初始值为10,增量为-1,并循环创建数值的降序序列

获取序列信息:
select * from seuser_sequences;
使用序列:
序列生成一系列数字
包含两个伪列,分别是currval 和 nextval
currval获取序列的当前值

select seq1.nextval, seq1.currval from dual;
nextval获取序列的下一个值
在获取序列的当前值时,必须先通过检索序列的下一个值对序列初始化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: