DB2 - Secuencias

Este capítulo le presenta el concepto de secuencia, la creación de secuencia, la visualización de la secuencia y su eliminación.

Introducción

Una secuencia es una función de software que genera números enteros en orden ascendente o descendente, dentro de un rango definido, para generar la clave principal y coordinar otras claves entre la tabla. Utiliza la secuencia para aprovechar números enteros, por ejemplo, para employee_id o transaction_id. Una secuencia puede admitir tipos de datos SMALLINT, BIGINT, INTEGER y DECIMAL. Una secuencia se puede compartir entre varias aplicaciones. Una secuencia se incrementa o decrementa independientemente de las transacciones.

Se crea una secuencia mediante la instrucción CREATE SEQUENCE.

Tipos de secuencias

Hay dos tipos de secuencias disponibles:

  • NEXTVAL: Devuelve un valor incrementado para un número de secuencia.

  • PREVIOUS VALUE: Devuelve el valor generado recientemente.

Parámetros de secuencias

Los siguientes parámetros se utilizan para las secuencias:

Data type: Este es el tipo de datos del valor incrementado devuelto. (PEQUEÑO, GRANDE, INTEGER, NÚMERO, DOBLE)

START WITH: El valor de referencia con el que comienza la secuencia.

MINVALUE: Un valor mínimo para que comience una secuencia.

MAXVALUE: Un valor máximo para una secuencia.

INCREMENT BY: valor de paso por el cual se incrementa una secuencia.

Sequence cycling: la cláusula CYCLE provoca la generación de la secuencia repetidamente. La generación de la secuencia se realiza haciendo referencia al valor devuelto, que se almacena en la base de datos mediante la generación de secuencia previa.

Creando una secuencia

Puede crear una secuencia utilizando la siguiente sintaxis:

Syntax:

db2 create sequence <seq_name>

Example: [Para crear una nueva secuencia con el nombre 'sales1_seq' y valores crecientes de 1]

db2 create sequence sales1_seq as int start 
with 1 increment by 1

Viendo las secuencias

Puede ver una secuencia utilizando la sintaxis que se proporciona a continuación:

Syntax:

db2 value <previous/next> value for <seq_name>

Example: [Para ver la lista del valor actualizado anterior en la secuencia 'sales1_seq']

db2 values previous value for sales1_seq

Output:

1 
----------- 
  4 
  1 record(s) selected.

Dejar caer la secuencia

Para eliminar la secuencia, debe utilizar la "SOLUCIÓN DE SECUENCIA "Comando. Así es como se hace:

Syntax:

db2 drop sequence <seq_name>>

Example: [Para eliminar la secuencia 'sales1_seq' de la base de datos]

db2 drop sequence sales1_seq

Output:

DB20000I The SQL command completed successfully.