To restart the sequence at a different number, you must drop and re-create it把序列删除重新建立

解决方案 »

  1.   

    重建最好解决方法也可以以下:
    alter sequence sequence_name INCREMENT BY 当前最大数-1;
    select sequence_name from dual;
    alter sequence sequence_name INCREMENT BY 1;
      

  2.   

    这一招试试再次初始化
    select a.nextval from 表查看当前序号
    select a.currval from dual
      

  3.   

    可以将以下代码写成过程或函数,调用起来方便一些,自己改改吧,不难。
    //重置sequence值
    declare
    n number(10);
    tsql varchar2(100);
    begin
    select my_seg.nextval into n from dual;
    n:=-(n-1);
    tsql:='alter sequence my_seg increment by'|| n;
    execute immediate tsql;
    select my_seg.nextval into n from dual;
    tsql:='alter sequence my_seg increment by 1';
    execute immediate tsql;
    end;
    /
      

  4.   


    首先以DBA的身份登录,
    察看一下 select * from sys.user_sequence
    如果你想更新
    a. select obj# from sys.obj$ where name='sequence_name'
    b. select * from sys.seq$ where obj#=/*从a中得到的结果.*/
    c. update sys.seq$ set last_number=... where obj#=/*从a中得到的结果.*/
    应该可以解决你的问题.
      

  5.   


    首先以DBA的身份登录,
    察看一下 select * from sys.user_sequence
    如果你想更新
    a. select obj# from sys.obj$ where name='sequence_name'
    b. select * from sys.seq$ where obj#=/*从a中得到的结果.*/
    c. update sys.seq$ set last_number=... where obj#=/*从a中得到的结果.*/
    应该可以解决你的问题.