序列 -- oracle

概念

序列也称为序列生成器,能够以串行方式生成一系列整数。

序列可以在多个用户并发环境中为各个用户生成不会重复的顺序整数,而且不需要额外的I/O开销或者事务锁资源。

序列和视图一样,并不占用实际的存储空间,只是在数据字典中保存它的定义信息。

创建序列

完整语法:

    CREATE SEQUENCE [ SCHEMA. ] sequence_name	--schema,序列所属的模式
    [ STRAT WITH start_number]	
    [ INCREMENT BY increment_number]
    [ MINVALUE minvalue | NOMINVALUE ]	--默认NOMINVALUE
    [ MAXVALUE maxvalue | NOMAXVALUE]	--默认NOMAXVALUE
    [CYCLE | NOCYCLE]	--如果是升序,达到最大值后是否从最小值开始,默认NOCYCLE
    [ORDER | NOORDER]	--是否按照请求次序生成序列号,默认NOORDER
    [CACHE cache_number | NOCACHE]
    --使用CHCHE选项时,该序列会预先生成一组序列号,保留在内存中,当使用下一个序列号时可以更快地响应,默认NOCACHE

例如:生成1-99

create sequence sequence_1
start with 1
increment by 1
minvalue 1
maxvalue 99;

使用序列

先介绍两个伪列:

  • nextval 获取序列的下一个序号值
  • currval 获取当前序列的序号值

例如:使用序列向emp表中插入一条信息

insert into emp(empno,deptno)
 values(sequence_1.nextval,10);

查看当前序号:

select sequence_1.currval from dual;
-- dual表是ORACLE系统提供的表,包含一行,一般用于临时显示单行的查询结果

在这里插入图片描述

修改序列

修改序列将创建语句中的create改为alter即可

alter sequence sequence_1
increment by 2;

但是修改序列应注意以下事项:

  • 不能修改起始值
  • 最小值不得大于当前值
  • 最大值不能小于当前值

如果要修改起始值,就必须删除序列,再重新建一个

删除序列

drop sequence sequence_1;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值