SQL> create table test (
  2  id number(8) primary key,
  3  name varchar2(20) not null);表已创建。SQL> create sequence test_seq
  2  start with 1
  3  increment by 1
  4  nocache;序列已创建。SQL> insert into test (id,name) values (test_seq.nextval,'aaa');已创建 1 行。SQL> select * from test;        ID NAME
---------- --------------------
         2 aaa各位大虾,为什么我的序列老是从2开始?

解决方案 »

  1.   

    你是11gr2吧?据说是个bug!
    10g上面就是好好的,从1开始的。
      

  2.   

    因为你从1开始起步。所以,你创建序列的的当前值为1,但是你使用了nextval取下一个值就是2了,你可以把起步值为0试试
      

  3.   

    顶,
    create sequence test_seq
      2 start with 0
      3 increment by 1
      4 nocache;
      

  4.   

    以前用上面的语句序列是从1开始,后来Oracle出了点问题,重装了一下Oracle,重装后建序列,每次就都从2开始啦。