意外行爲:甲骨文序列開始2,而不是1
我遇到11g版本的Oracle序列的怪異行爲(按10g作品):
CREATE SEQUENCE test_sequence START WITH 1;
CREATE TABLE test_table (val INT);
INSERT INTO test_table VALUES (test_sequence.NEXTVAL);
即使序列從開始,插入的第一個值是:
SELECT * FROM test_table;
VAL
----------
2
預期的行爲:
沒有插入選擇NEXTVAL
按預期工作:
CREATE SEQUENCE test_sequence_2 START WITH 1;
SELECT test_sequence_2.NEXTVAL FROM dual
NEXTVAL
----------
1
問:
任何人都可以使用Oracle 11g重現這一點嗎?這是一個已知的問題?我使用
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
。
它返回'1'我'Oracle數據庫11g第11.1.0.6.0 - 64位Production' – Quassnoi 2010-11-11 11:18:09
@Quassnoi:這似乎是'11.2 「功能」 '(見傑弗裏的回答)。感謝您的測試! – 2010-11-11 12:24:07