SECUENCIAS EN ORACLE

SARA
07 de Septiembre del 2005
Hola me he creado, en oracle una secuencia de numeros:

CREATE SEQUENCE IDENTIFICADORES INCREMENT BY 1 START WITH 1

y quisiera saber si hay alguna forma de dejarla a 0. Es decir como cuando la acabo de crear que el nextval sea 1.
Un saludo

Rodolfo Reyes
07 de Septiembre del 2005
Si se puede. Para esto tienes que "jugarle la vuelta a la secuencia".

alter sequence IDENTIFICADORES
increment by -1;

Al hacer lo anterior le estas indicando que cada vez que ejecutes el nextval se restara 1 al total.

Así que ejecuta tantos nextval como sean necesarios para que quede a 0. Y luego, pon nuevamente el incremento en 1.

alter sequence IDENTIFICADORES
increment by 1;


Espero que te funcione.

Manuel Lopez
07 de Septiembre del 2005
Hola Sara ...

Deberias especificar con que version de oracle estas trabajando... pero en Oracle 9i pones:

CREATE SEQUENCE IDENTIFICADORES INCREMENT BY 1 START WITH 0 MINVALUE 0 y yaaaaaaaaaaa !!!!!!!!!!

Es decir, solo te falto la clausula MINVALUE, debes ponerla porque si no te da el error que el start value no puede ser mayor que el MinValue, comprendes ???

Ahora no se con que objetivo estaras haciendo eso pero las secuencias te garantizan que van a ser unicas y ascendentes si las definistes asi, es decir, puedes tener el 1 y quizas despues el 4 a no ser que no uses cache ... pero eso es bueno que lo sepas, usando cache se pueden perder numeros, pero se mantiene la unicidad y la uniformidad de los valores , eso lo ganrantiza nuestro amigo Oracle ...

Espero resuelvas ...

Saludos
Manuel