方法:1、用DROP SEQUENCE語句刪除sequence,然后用Create sequence語句重新創建一個;2、用Increment By修改序列初始值,語法為“ALTER SEQUENCE…INCREMENT BY 數值”。
本教程操作環境:Windows10系統、oracle 11g版、Dell G3電腦。
oracle怎么修改sequence
Oracle 序列(Sequence)主要用于生成流水號,在應用中經常會用到,特別是作為ID值,拿來做表主鍵使用較多。
但是,有時需要修改序列初始值(START WITH)時,有同仁使用這個語句來修改:alter sequence sequencename start with xxxxxxxx。但是,在Oracle DB中,修改序列沒有這樣的語法。下面介紹幾種修改方式:
1、先刪除序列,然后重新創建。
這個方法比較暴力,也比較方便,如果序列有在用,會影響應用的正常使用。
如果不加條件語句,默認創建的序列格式如下:
語義Semantics:
INCREMENT BY:指定序列增長步長。可以為正(升序)、負整數(降序),但不能為0。最高精度28。
START WITH: 指定序列起始數。默認為序列最小值。
MAXVALUE :指定序列最大值。最大28位。必須大于等于起始值且大于等于序列最小值。
NOMAXVALUE:? 無最大值(實際為10^27或-1)。default
MINVALUE :指定序列最小值。
NOMINVALUE? :無最小值(實際為1或-10^26)。Default
CYCLE? :指定序列達到最大值或最小值后繼續從頭開始生成。
NOCYCLE :不循環生成。Default.
CACHE :指定數據庫內存中預分配的序列值個數,以便快速獲取。最小cache值為2。
刪除序列必須要有drop? any? sequence權限
語法:
例子:
DROP?SEQUENCE?oe.customers_seq;
2、通過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;
推薦教程:《Oracle視頻教程》