CREATE SEQUENCE FZBG.RD_LXPB_CORRESPONDENCE_SEQU
  START WITH 4201
  MAXVALUE 999999999999999999
  MINVALUE 1
  NOCYCLE
  CACHE 100
  NOORDER;主键不是自动加1,都是一百一百的往上蹦请教下,哪里错了。。怎么修改
还有让主键重新从1开始排列。。怎么弄

解决方案 »

  1.   

    加上一个INCREMENT BY 1试试 
      

  2.   

    create sequence FZBG.RD_LXPB_CORRESPONDENCE_SEQU 
    minvalue 1
    maxvalue 999999999999999999999999999
    start with 1
    increment by 1
    cache 100;
      

  3.   

    CREATE TABLE RD_LXPB_CORRESPONDENCE
    (
      LXID    NUMBER(20)                            NOT NULL,
      LXDW    VARCHAR2(50 BYTE),
      SXSJ    DATE,
      LXR     VARCHAR2(50 BYTE),
      XXDH    VARCHAR2(800 BYTE),
      LXZT    VARCHAR2(1000 BYTE),
      LXNR    CLOB,
      YSBH    VARCHAR2(50 BYTE),
      BH      VARCHAR2(50 BYTE),
      CLZT    VARCHAR2(50 BYTE),
      CKZT    VARCHAR2(50 BYTE),
      ORG_ID  VARCHAR2(50 BYTE)
    )
      

  4.   

    有increment by 1  了..问题还是没有解决
      

  5.   


    SQL> drop sequence RD_LXPB_CORRESPONDENCE_SEQU;序列已丢弃。SQL> CREATE   SEQUENCE   RD_LXPB_CORRESPONDENCE_SEQU 
      2      START   WITH   4201 
      3      MAXVALUE   999999999999999999 
      4      MINVALUE   1 
      5      NOCYCLE 
      6      CACHE   100 
      7      NOORDER; 序列已创建。
    SQL>  CREATE   TABLE   RD_LXPB_CORRESPONDENCE 
      2  ( 
      3      LXID         NUMBER(20)                                                         NOT   NULL,
     
      4      LXDW         VARCHAR2(50   BYTE), 
      5      SXSJ         DATE, 
      6      LXR           VARCHAR2(50   BYTE), 
      7      XXDH         VARCHAR2(800   BYTE), 
      8      LXZT         VARCHAR2(1000   BYTE), 
      9      LXNR         CLOB, 
     10      YSBH         VARCHAR2(50   BYTE), 
     11      BH             VARCHAR2(50   BYTE), 
     12      CLZT         VARCHAR2(50   BYTE), 
     13      CKZT         VARCHAR2(50   BYTE), 
     14      ORG_ID     VARCHAR2(50   BYTE) 
     15  );表已创建。SQL> insert into RD_LXPB_CORRESPONDENCE(LXID)  select RD_LXPB_CORRESPONDENCE_SEQU.NEXTVAL from dual;
    已创建 1 行。
    SQL> select lxid from RD_LXPB_CORRESPONDENCE;      LXID
    ----------
          4201SQL> insert into RD_LXPB_CORRESPONDENCE(LXID)  select RD_LXPB_CORRESPONDENCE_SEQU.NEXTVAL from dual;
    已创建 1 行。SQL> select lxid from RD_LXPB_CORRESPONDENCE;      LXID
    ----------
          4201
          4202没有问题啊,可能是程序问题,序列跳号了,比如很多人同时访问时,都从4201~4310中的一段序号,但只有拿到4301那个人插了数据
      

  6.   

    1)建议你用PLSQL DEVELOPER 查看Sequences的执行情况。
    2)以下是我自己在Sql plus里做的测试
    SQL> create sequence test_seq
      2  increment by 1
      3  minvalue 1
      4  start with 1
      5  nomaxvalue 
      6  nocycle
      7  nocache
      8  /SQL>  create table test2
      2   (id number(6) primary key,
      3   name varchar2(20));表已创建。SQL> create or replace trigger trg_test_id
      2  before insert
      3  on test2
      4  for each row
      5  begin
      6  select test_seq.nextval into :new.id from dual;
      7  end;
      8  /触发器已创建SQL> insert into test2(name)
      2  values('&name');我是先添加了4个记录,然后conn system/password 再转到当前用户继续添加数据2个记录
    又退出Oracle继续追加数据2个记录
    结果如下:连接到: 
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining optionsSQL> select * from test2;        ID NAME
    ---------- --------------------
             1 shen
             2 liang
             3 hello
             4 word
             5 java
             6 delphi已选择6行。SQL> insert into test2(name)
      2  values('&name');
    输入 name 的值:  c#
    原值    2: values('&name')
    新值    2: values('c#')已创建 1 行。SQL> /
    输入 name 的值:  Grails
    原值    2: values('&name')
    新值    2: values('Grails')已创建 1 行。SQL> select * from test2;        ID NAME
    ---------- --------------------
             1 shen
             2 liang
             3 hello
             4 word
             5 java
             6 delphi
             7 c#
             8 Grails已选择8行。
      

  7.   

    这个问题是CACHE   100的原因 
    设nocache就可以了