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