发现某sequence递增的值发生了异常,并没有按照设想的来递增。所以需要进行修正,可采用重建sequence的方法来修正此问题。不过为了避免删除、重建sequence带来的不必要的麻烦(对其它对象的影响),将会采用下面的方法进行修正,事实证明此修正方法要巧妙些。
1.为了演示其过程与效果,创建一个新的sequence
create sequence SEQ_DBA_TEST_ID
START WITH 1
MAXVALUE 999999
MINVALUE 1
NOCYCLE
CACHE 20
ORDER;
2.查看它的nextval值
select feg_isu.SEQ_DBA_TEST_ID.nextval from dual;
NEXTVAL
----------
28
1 row selected.
3.为了清楚的看到其起始值,修改其这nocache
alter sequence SEQ_DBA_TEST_ID nocache;
4.修改increment value,这里的值的由来参照step 2
alter sequence SEQ_DBA_TEST_ID increment by -27; --(-28-1)
5.再次查询nextval,此时已经重置为1
select SEQ_DBA_TEST_ID.nextval from dual;
6.还原minvalue与increment
alter sequence SEQ_DBA_TEST_ID minvalue 1;
alter sequence SEQ_DBA_TEST_ID increment by 1;