Oracle 顺序简单介绍与操作

Oracle 数据库 顺序

与Mysql数据库拥有主键自增功能不同的是,oracle数据额外提供了一种对象(object),为使用者自动生成唯一的整数值,通过此帮助生成自增主键。

常见的语法为:

CREATE SEQUENCE [ schema.] 顺序id

   [ { INCREMENT BY 数值 | START WITH 数值}     --增量值 |开始值

   | { MAXVALUE integer | NOMAXVALUE }             --最大顺序号 |不设置最大顺序号

   | { MINVALUE integer | NOMINVALUE }                --最小顺序号 |不设置最小顺序号

   | { CYCLE | NOCYCLE }                                        --循环 | 不循环

   | { CACHE 数值 | NOCACHE }                               --缓存 | 不加缓存

   | { ORDER | NOORDER }                                      --排序 | 不排序

   ];

常见使用方法:

   SequeceId.currval;    --返回当前顺序的值。

   SequeceId.nextval ;  --根据设定的增量值增加顺序值并返回

 (注意:在第一次nextval初始化之后才能使用currval,否则会出错 )个人认为这是Oracle的一个弊端(*>﹏<*)

其中CACHE是指缓存值,如果指定cache值,那么Oracle数据库就可以预先在内存里面放置一些Sequence,这样存储顺序的时候就会相对快一些。 

为方便理解给出如下的几个案例代码:

1. 建一个顺序,要求从99计数,并且只使用奇数,要求cache是10,需要排序,可循环,最大值10000:

CREATE SEQUENCE seq_users /*顺序名*/
INCREMENT BY 2 
START WITH 99
MAXVALUE 10000  
CYCLE                         
CACHE 10
ORDER;

2. 显示出顺序的当前值是 999:

alter sequence seq_users INCREMENT BY 900; 
/*alter关键字 可以修改顺序基本属性,这边修改顺序增量*/
select SEQ_USERS.nextval from dual; /*初始化查询先nextval*/
select SEQ_USERS.currval from dual; /*查询当前currval*/

关于查询时使用的dual,dual是Oracle中的一个伪表,可以利用该伪表设置或查看序列,或是调用一些内置的函数,方便操作它们。(有空时我再写一篇详细博客进行说明)

3. 将顺序初始化成99,并显示初始化后的值:

DROP SEQUENCE seq_users; /*删除原来的顺序*/
CREATE SEQUENCE seq_users /*新建一个顺序*/
INCREMENT BY 2 
START WITH 99
MAXVALUE 10000  
CYCLE                         
CACHE 10
ORDER;
select SEQ_USERS.nextval from dual; /*初始化查询先nextval*/
select SEQ_USERS.currval from dual; /*查询当前currval*/

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值