Oracle 序列(Sequence)主要用於生成流水號,在應用中經常會用到,特別是作為ID值,拿來做表主鍵使用較多。
但是,有時需要修改序列初始值(START WITH)時,有同仁使用這個語句來修改:alter sequence sequencename start with xxxxxxxx。但是,在Oracle DB中,修改序列沒有這樣的語法。下面介紹幾種修改方式:
1.先刪除序列,然后重新創建。不過這不是當前要講的重點。這個方法比較暴力,也比較方便,如果序列有在用,會影響應用的正常使用。
2.寫個循環來增加。如果需要增加500,寫個循環運行500次SELECT SEQUENCE_NAME.NEXTVAL FROM DUAL;
3.通過Increment By來實現修改初始值。
例如:若序列名稱是SEQ_TEST,初始值是13,而現在要設置初始值為1013,Increment By值為:1000(1013-13)
1) 執行:ALTER SEQUENCE SEQ_TEST INCREMENT BY 1000;
2) 執行:SELECT SEQ_TEST.NEXTVAL FROM DUAL;
3) 執行:ALTER SEQUENCE SEQ_TEST INCREMENT BY 1;
修改完成。
下面是一個操作樣例截圖: