使用: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!
慕妹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 );
- 2 回答
- 0 关注
- 463 浏览
添加回答
举报
0/150
提交
取消