Oracle序列

一,序列的作用与创建
作用:可以自动的按照既定的规则实现数据的编号操作
创建语法:
create sequence 序列名称
    [increment by 步长] --每次增长的大小
    [start with 开始值]
    [maxvalue 最大值|nomaxvalue]
    [minvalue 最小值|nominvalue]
    [cycle|nocycle]    --循环
    [cache 缓存大小|nocache]; --cache保存的是个数
    
1,默认序列:所有选项均是默认值,最小值是0,最大值表示无限大
语法:
create sequence 序列名称
要使用一个已经创建完成的序列,则可以使用序列中提供的两个伪列进行操作:
序列名称.currval:表示取得当前序列已经增长的结果,重复调用多次后序列内容不会有任何变化,同时当前序列的大小(last_number)不会改变;
序列名称.nextval:表示取得一个序列的下一次增长值,每次调用一次,序列都会自动增长;
注意:对于给出的伪列,一定是先使用nextval,之后才能使用currval,也就是只有在执行了nextval之后序列才能真正进入到了可用状态。如果设置了缓存,当数据库出现问题,那么有可能这些缓存的数据就会消失了,如果再次使用,就可能出现跳号问题。

2,删除序列
语法:
drop sequence 序列名称

3,创建特殊功能的序列
循环序列:让序列内容在1,3,5,7,9之间循环
create sequence myseq
    increment by 2
    start with 1
    maxvalue 10
    minvalue 1
    cycle
    cache 3;
注意cache值必须小于cycle所有值,cache默认为20,此处cycle只有五个值
修改序列:
alter sequence 序列名称
    [increment by 步长] 
    [maxvalue 最大值|nomaxvalue]
    [minvalue 最小值|nominvalue]
    [cycle|nocycle]    --循环
    [cache 缓存大小|nocache]; 
    
4,自动序列(Oracle12c)
create table 表名称(
    列名称   类型    generated by default as identity([increment by 步长]
                                [start with 开始值]
                                [maxvalue 最大值|nomaxvalue]
                                [minvalue 最小值|nominvalue]
                                [cycle|nocycle]    --循环
                                [cache 缓存大小|nocache]),
    
    列名称   类型,...
);
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值