情况是这样的,目前正是环境已经有一个处在使用中的表TRANS,主键ID是数字;
现在我想修改程序让ID从序列中取值,比如就叫做SEQ_TRANS,它的起始值就不应该是1了;
我知道可以先查到最大值比如12345,然后用这种方法创建
create sequence SEQ_TRANS minvalue 1 maxvalue 9999999 start with 12345 increment by 1;现在的问题是有没有创建序列的时候办法自动获取这个最大值,就是感觉像这样的
create sequence SEQ_TRANS minvalue 1 maxvalue 999999 start with (select max(id)+1 from TRANS) increment by 1;
现在我想修改程序让ID从序列中取值,比如就叫做SEQ_TRANS,它的起始值就不应该是1了;
我知道可以先查到最大值比如12345,然后用这种方法创建
create sequence SEQ_TRANS minvalue 1 maxvalue 9999999 start with 12345 increment by 1;现在的问题是有没有创建序列的时候办法自动获取这个最大值,就是感觉像这样的
create sequence SEQ_TRANS minvalue 1 maxvalue 999999 start with (select max(id)+1 from TRANS) increment by 1;
declare
n number;
begin
begin
execute immediate 'drop sequence SEQ_TRANS';
exception
when others then
null;
end;
select max(id) + 1 into n from TRANS;
execute immediate '
create sequence SEQ_TRANS minvalue 1 maxvalue 999999 start with ' || n ||
' increment by 1';
end;