为了账号安全,请及时绑定邮箱和手机立即绑定

关于sequence的next number值的问题,麻烦帮忙看看以下的语句,求解释!

关于sequence的next number值的问题,麻烦帮忙看看以下的语句,求解释!

SMILET 2021-07-22 18:15:15
使用:CREATE SEQUENCE test_sequence1INCREMENT BY 1 -- 每次加几个START WITH 1 -- 从1开始计数NOMAXVALUE -- 不设置最大值NOCYCLE -- 一直累加,不循环CACHE 10;建立sequence后,在plsql中看到序列的定义时有一个是NEXT NUMBER,此时是1,但当使用了一次这个sequence后,再看这个NEXT NUMBER就是11了,我理解不应该是下一个值,即2么?难道理解不对?我没有中断数据库连接或是其它操作,cache也会跳号?谢谢!我明白,但我在PLSQ中用右键view这个序列的定义时,有个列是NEXT NUMBER,用一次nextval后它就变成11了,不是2,不知道这是为什么呢?
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

NEXTNUMBER是序列下一次要缓存的值的起始。
没看到 CACHE 10 吗? 系统已经给你预先缓存了10个值。
所以,NEXTVAL是2,NEXTNUMBER就是 11了。
如果 CACHE 20的话,你 看到的NEXT NUMBER就是21了!
GOOD LUCK!

查看完整回答
反对 回复 2021-07-26
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

当你创建后 使用一次就是 test_sequence1.nextval 就是2 啊 test_sequence1.currval 是1。 你试试?
例如你创建一个表 create table test(id number);
insert into test values(test_sequence1.nextval );
insert into test values(test_sequence1.nextval );
insert into test values(test_sequence1.nextval );

查看完整回答
反对 回复 2021-07-26
  • 2 回答
  • 0 关注
  • 418 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信