日期:2014-05-17  浏览次数:20967 次

序列为啥总是从2开始
首先我要说,此问题在非sys、system用户下产生的

CREATE TABLE tbtest1
(
  ID NUMBER(10, 0) NOT NULL
, CONSTRAINT tbtest1_PK PRIMARY KEY
  (
    ID
  )
  ENABLE
);

create sequence seq_test_id
start with 1
increment by 1;

insert into tbtest1(id) values(seq_test_id.nextval);
SELECT * FROM tbtest1;

CREATE TABLE 成功。
create sequence 成功。
1 行 已插入
ID                     
---------------------- 
2                      

1 rows selected

为啥结果是2,而不是1?
绝对没有select seq_test_id.nextval from dual;
数据库版本 Personal Oracle Database 11g Release 11.2.0.1.0 - Production
------解决方案--------------------
这个是11gr2的一个序列bug了 
------解决方案--------------------
你试试这个来消除延迟段创建特性?alter session set deferred_segment_creation=false;