Generar secuencias para Oracle
May 07
Qué es una secuencia
Las secuencias en Oracle simulan el “autoincremento” de un campo en la base de datos, algo parecido a lo que podemos encontrar por ejemplo en mySQL, y aunque en algunos casos bastará con asignar a un campo el tipo “autoincremento” en Oracle necesitaremos generar una secuencia, para ello tomaremos como ejemplo esta plantilla:
CREATE SEQUENCE nombre_secuencia
INCREMENT BY numero_incremento
START WITH numero_por_el_que_empezara
MAXVALUE valor_maximo | NOMAXVALUE
MINVALUE valor_minimo | NOMINVALUE
CYCLE | NOCYCLE
ORDER | NOORDER
Los valores que tendremos que añadir son bastante sencillos, el parámetro CYCLE, indicará que cuando la secuencia llegue a su valor máximo, esta vuelva a empezar, si por el contrario, usamos NOCYCLE esto no ocurrirá.
El parámetro ORDER y NOORDER es quizá el menos utilizado, con ORDER implicará que las secuencias son generadas en el orden de petición y esto sólo será necesario para bases de datos de aplicaciones en tiempo real que sean usadas desde distintas ubicaciones, en aplicaciones “normales” bastará con poner NOORDER
Un ejemplo de una secuencia válida sería
CREATE SEQUENCE SECUENCIA1
INCREMENT BY 1
START WITH 1
MAXVALUE 9999999999
MINVALUE 1
NOCYCLE
NOORDER
;
Crear secuencias con el Erwin
Podemos usar un programa como el Erwin (Herramienta Case para el modelo de bases de datos) para generarlas, daremos botón derecho, nueva secuencia y rellenaremos los datos necesarios.
Después, tools forward engineer / schema generation nos aparecerá una ventana donde seleccionaremos el código de que queremos generar, después pulsaremos preview y obtendremos nuestra secuencia.
Después en el Toad, SQL Plus, o cualquiera que sea el programa que usemos para administrar nuestra base de datos, bastará con ejecutarla y ya estará generada.
Para utilizar la secuencia, tendremos que ejecutar la sentencia
SELECT nombre_secuencia.nextval FROM DUAL
Con ello recibiremos el siguiente valor de la secuencia.
Una cosa a tener en cuenta es que siempre que llamemos a la secuencia se aumentará su valor en lo establecido, independientemente de si luego hacemos algo con ese valor o no.
“Comparativa de bases de datos en internet, 
