Para reiniciar una secuencia SEQ creada con el comando:
CREATE SEQUENCE SEQ;
Tan solo hay que ver su valor actual mediante el comando:
SELECT SEQ.CURRVAL FROM DUAL;
Luego modificar la secuencia insertando la opción
increment by añadiendo en el valor
VAL -(el valor actual -1) para reiniciar la secuencia en 1:
ALTER SEQUENCE SEQ INCREMENT by -VAL;
Luego ejecutar el comando que va a reiniciar la secuencia:
SELECT SEQ.NEXTVAL FROM DUAL;
Finalmente restablecer el incremento de la secuencia de la secuencia:
ALTER SEQUENCE SEQ INCREMENT by 1;
Ejemplo:
SQL> create sequence seq;
Secuencia creada.
SQL> select seq.nextval from dual;
NEXTVAL
----------
1
SQL> select seq.nextval from dual;
NEXTVAL
----------
2
SQL> select seq.nextval from dual;
NEXTVAL
----------
3
SQL> select seq.currval from dual;
CURRVAL
----------
3
SQL> alter sequence seq increment by -2; // 2=SEQ.CURRVAL-1
Secuencia modificada.
SQL> select seq.nextval from dual;
NEXTVAL
----------
1
SQL> alter sequence seq increment by 1;
Secuencia modificada.
PD: El
artículo original fue escrito por wjaouadi, contribuidor de
CommentCaMarche