使用:CREATE SEQUENCE test_sequence1INCREMENT BY 1 -- 每次加幾個START WITH 1 -- 從1開始計數(shù)NOMAXVALUE -- 不設(shè)置最大值NOCYCLE -- 一直累加,不循環(huán)CACHE 10;建立sequence后,在plsql中看到序列的定義時有一個是NEXT NUMBER,此時是1,但當使用了一次這個sequence后,再看這個NEXT NUMBER就是11了,我理解不應(yīng)該是下一個值,即2么?難道理解不對?我沒有中斷數(shù)據(jù)庫連接或是其它操作,cache也會跳號?謝謝!我明白,但我在PLSQ中用右鍵view這個序列的定義時,有個列是NEXT NUMBER,用一次nextval后它就變成11了,不是2,不知道這是為什么呢?
2 回答

汪汪一只貓
TA貢獻1898條經(jīng)驗 獲得超8個贊
NEXTNUMBER是序列下一次要緩存的值的起始。
沒看到 CACHE 10 嗎? 系統(tǒng)已經(jīng)給你預(yù)先緩存了10個值。
所以,NEXTVAL是2,NEXTNUMBER就是 11了。
如果 CACHE 20的話,你 看到的NEXT NUMBER就是21了!
GOOD LUCK!

慕妹3146593
TA貢獻1820條經(jīng)驗 獲得超9個贊
當你創(chuàng)建后 使用一次就是 test_sequence1.nextval 就是2 啊 test_sequence1.currval 是1。 你試試?
例如你創(chuàng)建一個表 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 關(guān)注
- 508 瀏覽
添加回答
舉報
0/150
提交
取消