Oracle的sequence的重置

發現某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;
相關文章
相關標籤/搜索