Secuencias Oracle: cómo se crean, modifican y reinician

Secuencias Oracle: cómo se crean, modifican y reinician

En este artículo te enseñamos una manera sencilla de reiniciar una secuencia (SEQ) en Oracle y modificar el contador. Las secuencias son útiles para cuando queremos crear un objeto que dé lugar a valores enteros unívocos.

¿Cómo reiniciar una secuencia en Oracle?

  • Para crear una secuencia SEQ (nombre de la secuencia):
CREATE SEQUENCE SEQ;
START WITH valor
INCREMENT BY valor
MAXVALUE valor
MINVALUE valor
CACHE valor / NOCACHE 
CICLE
ORDER;
  • Para ver su valor actual:
SELECT SEQ.CURRVAL FROM DUAL;
  • Para modificar la secuencia, utilizamos "INCREMENT by" y para reiniciar la secuencia a 1 asignaos el valor -1 a VAL:
ALTER SEQUENCE SEQ INCREMENT by -VAL;
  • Después hay que ejecutar el comando que va a reiniciar la secuencia:
SELECT SEQ.NEXTVAL FROM DUAL;
  • Y finalmente restablecemos el incremento 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.

Base de datos