Oracle 序列

Oracle 是通过序列来处理自增长的列

1.建立序列 (sequence)
例:创建一个序列i_id_seq第一个序列号为50,增量为1,最大值为100
create sequence i_id_seq
start with 50 increment by 1 maxvalue 100 cache 10
/*注:cache用于指定在内存中可以预分配的序列号个数<该选项设置越大序列的访问性能会越好同时也会占用更多的内存空间>
  cache 10 表示一次产生10个号,
 但是使用缓存产生号,优点是提高效率,缺点是可能产生跳号
例如 第一次插入5条数据那么就只使用了五个序列号  但是产生了十个序列号还有五个就废弃了  
     接着再插入数据时就会重新调用i_id_seq再次产生10个序列号 这样就会产生跳号
 */

2.使用序列
当使用序列时,必须通过伪列 nextval和currval来引用序列(引用方法:序列名.伪列)
nextval用于返回下一个序列值 currval用于返回当前序列值
例:
insert into i_top(id,name,i_topps)
values(i_id_seq.nextval,'tomms','fkf');


3.维护序列

修改序列:<序列的初始值不能修改>
例:修改序列i_id_seq的最大值为200 缓存值为20
alter sequence i_id_seq maxvalue 200 cache 20;
/*
注:sequence 用于指定序列号
    increment by 用于改变序列增量
    maxvalue 用于改变序列生成器可以生成的最大序列号
    minvalue 用于改变序列生成器可以生成的最小序列号
    cycle|nocycle用于改变序列的循环选项
     cache|nocache 用于改变序列的缓存设置
*/

删除序列
例:删除序列i_id_seq
drop sequence i_id_seq

4.显示序列信息<数据字典 user_sequences>
select
us.INCREMENT_BY ,--标识序列增量
us.CACHE_SIZE, --标识cache选项值
us.MAX_VALUE, -- 最大值
us.MIN_VALUE, --最小值
us.LAST_NUMBER  --标识序列生成器在内存中要生成的下一个值
from user_sequences us
where sequence_name ='i_id_seq'    --指定序列的名称


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tiegenZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值