如果sequence在使用的过程中想要复位到初值,或者回复的以前的某个值,可以这样做:
1.修改sequence的increment by属性为一个负数;
2.调用sequence的nextval方法,让当前值变小;
3.修改sequence的increment by属性为原来的值。
注意:当前使用的user必须有修改sequence的权利。
sequence有哪些属性呢?
运行desc user_sequences
结果如下:
Name Null? Type
----------------------------------------- -------- ----------------------------
SEQUENCE_NAME NOT NULL VARCHAR2(30)
MIN_VALUE NUMBER
MAX_VALUE NUMBER
INCREMENT_BY NOT NULL NUMBER
CYCLE_FLAG VARCHAR2(1)
ORDER_FLAG VARCHAR2(1)
CACHE_SIZE NOT NULL NUMBER
LAST_NUMBER NOT NULL NUMBER
修改sequence
假设当前值为10,要回到1
alter sequence sequence_name increment by -9;
select sequence_name.nextval from dual;
alter sequence sequence_name increment by 1;