sequence最大的特点就是可以自动增长,不用管理.既然需要根据查询结果来修改,还不如直接根据查询结果生成代码便成,省了sequence.alter sequence SS minvalue 3;

解决方案 »

  1.   

    DROP SEQUENCE aa;
    CREATE SEQUENCE aa START WITH 100; 
    也行吧
      

  2.   

    要实现这个功能只要自己写一个过程(或者函数)就可以了:create or replace procedure move_max(start_value number,step_value number) as 
      min_value int;
      max_value int;
    declare
      min_value start_value;
      select max() into max_value from your_table;
      while min_value<=max_value loop
        min_value:=min_value + step_value;
        select your_sequence.nextval from dual;
      end loop;
    end move_max;
      

  3.   

    谢谢了,我去试试,没法在create sequence时就定义成一个子查询的值吗?
      

  4.   

    这个好像是不可以的。sequence又不是要用的时候都要创建一次的,有必要去差一下表来确定Minvalue么?如果是这样,还不如直接查表好了
      

  5.   

    没有办法在sequence中定义一个查询,只能先取出表中的最大值了
      

  6.   

    思路:先查询表得到最大值,然后修改sequence的start with