Reiniciar una secuencia

Noviembre 2016

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 :
El documento «Reiniciar una secuencia» de CCM (es.ccm.net) se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo siempre y cuando respetes las condiciones de dicha licencia y des crédito a CCM.