如果直接drop掉,与这个sequence相关的function trigger什么的在下次运行的时候都会重新编译,而且编译有可能会失败,所以采用了下边的方法:
假设sequence seq属性如下:
increment 1
minvalue 1
则用下边方法:
alter sequence seq minvalue 0;
select seq.nextval from dual; --假设值是30
alter sequence seq increment by -30;
select seq.nextval from dual; --会得到0
alter sequence seq minvalue by 1;
alter sequence seq increment by 1;
这样之后再取的时候就会从1开始了。