Cómo utilizar las secuencias de Oracle para simular el tipo de datos autoincremento de otros motores de bases de datos (Access, MySQL, Paradox, DBase, etc). Incluye ejemplos en SQL utilizando el comando create sequence.

Mediante las secuencias, Oracle puede proporcionar una lista consecutiva de números unívocos que sirve para simplificar las tareas de programación. La primera vez que una consulta llama a una secuencia, se devuelve un valor predeterminado. En las sucesivas consultas se obtendrá un valor incrementado según el tipo de incremento especificado. Las secuencias pueden ser útiles, por ejemplo, para simular el tipo de datos AUTOINCREMENTO de Paradox, Access y MySQL.

Para crear una secuencia en Oracle mediante SQL utilizaremos el comando create sequence con la siguiente sintaxis:

Por ejemplo, si queremos crear una secuencia que empiece en 100 y se incremente de uno en uno utilizaremos la siguiente consulta SQL:

Para utilizar la secuencia, en primer lugar, crearemos una tabla de prueba (para insertar un registro y comprobar que la secuencia anterior funciona correctamente):

Para utilizar la secuencia creada en una inserción de fila:

Realizamos otra inserción para comprobar que el incremento es de 1:

Como se puede observar en el ejemplo anterior, para obtener el siguiente valor de la secuencia almacenada se utiliza el comando: nombre_secuencia.NextVal.

Para comprobar que la secuencia ha funcionado en los inserts anteriores hacemos un SELECT a la tabla «clientes»:

El resultado de este SELECT debe ser de dos registro con «codigo» 100 y 101:

AjpdSoft Administración BD

Ejemplo de creación de una secuencia cíclica (cuando llegue al valor máximo empezará por el valor inicial)

Creamos una tabla para las pruebas:

Ahora realizamos la inserción de más de 20 filas para comprobar que la secuencia cíclica funciona:

Como se puede observar en el ejemplo anterior hemos utilizados dos secuencias «incremento_id_cliente» y «incremento_ciclico».

Para comprobar que el ciclo funciona realizamos un SELECT sobre la tabla «prueba_ciclo»:

AjpdSoft Administración BD

Para crear una secuencia decremental el parámetro INCREMENT BY tendrá valor -1 y el parámetro START WITH coincidirá con el parámetro MAXVALUE:

Para hacer la prueba crearemos la tabla «prueba_decremental»:

Ahora insertaremos unas cuantas filas para comprobar que la secuencia funciona correctamente:

Haremos un SELECT para comprobar que la secuencia es decremental:

AjpdSoft Administración BD