Reiniciar una secuencia

Septiembre 2017

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.

Consulta también

Publicado por Carlos-vialfa. Última actualización: 1 de julio de 2009 a las 18:32 por Carlos-vialfa.
El documento «Reiniciar una secuencia» se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo libremente. No olvides citar a CCM (es.ccm.net) como tu fuente de información.