假如一个oracle序列的currval是10000,increment是1,那么怎样将它的nextval变成从20000开始取呢?最好是不用删除重建这种方法,请教高手.

解决方案 »

  1.   

    alter sequence seq_name start with 20000;
      

  2.   


    SELECT s.nextval FROM dual; --假如是200
    alter sequence s INCREMENT BY 19800;
    SELECT s.nextval FROM dual;
    alter sequence s INCREMENT BY 1;
    SELECT s.currval FROM dual;
      

  3.   

    alter sequence aaa increment by 10000;
    再取nextval就是20000了
      

  4.   

    改变increment值,这个办法我也想到了,不过当前序列的nextval是300多W,表里存的ID值都已经有1000多W了.那这个increment就设置的太大了.觉得不太合适...
    我想直接将序列从2000W开始取.
      

  5.   

    真晕啊.oracle作过一些数据同步,结果ID全乱了.
    谢谢楼上两位帮忙.