Cómo usar secuencias de Postgres

Cómo usar secuencias de Postgres
Las secuencias son un tipo especial de objeto de base de datos que genera identificadores numéricos únicos. Una secuencia es responsable de generar las claves principales de una base de datos. Las secuencias generan el orden numérico y existe la posibilidad de que múltiples secuencias contengan los mismos numéricos, pero el orden es diferente en cada secuencia. Este artículo demuestra el uso y operación de secuencias en Postgres. Además, se citan varios ejemplos para experimentar el funcionamiento de las secuencias en Postgres.

Cómo crear una secuencia en Postgres

Las secuencias en Postgres se crean siguiendo la sintaxis del comando Crear secuencia que se proporciona a continuación:

Crear secuencia

El denota el nombre que desea establecer para una secuencia y el contiene las propiedades extendidas para esa secuencia específica. Las opciones compatibles con la secuencia de creación se mencionan en la siguiente sección:

Opciones compatibles con el comando Crear secuencia

Es posible crear una secuencia que tenga parámetros definidos por el usuario utilizando el comando Crear secuencia. Las siguientes opciones son compatibles con este comando:

[Incremento [por]]: Esta opción crea la secuencia con un incremento de un número numérico específico. El valor predeterminado es 1. Además, si el valor de incremento es positivo, el orden ascenderá, mientras que el orden descendente se puede obtener pasando el valor negativo.

[Como Smallint | Int | EMPEZANDO ]: El parámetro de tipo de datos le permite definir el patrón de secuencia. Por defecto, el bigint se usa como un tipo de datos.

[Minvalue] o [sin minvalue]: El valor mínimo de la secuencia se puede especificar utilizando esta opción. Si esta opción se deja en blanco, entonces el valor máximo predeterminado se establece de acuerdo con el tipo de datos especificados.

[Maxvalue] o [sin minvalue]: Esta opción es recíproca de la mencionada anteriormente, donde puede establecer el valor máximo de su secuencia. Además, si no se establece, se considera el valor predeterminado del tipo de datos.

[Inicio [con] inicio]: Indica el valor del comienzo de la secuencia.

[Ciclo] o [sin ciclo]: Si se define esta opción, el valor de secuencia se reanuda después de alcanzar el límite máximo. El valor predeterminado, en este caso, no es ciclo y devuelve un error después de alcanzar el límite especificado de la secuencia.

[PROPIEDAD DE ]: Esta opción se utiliza para asociar la secuencia con una columna específica de una tabla. Como resultado, cuando se elimina la columna, la secuencia también se elimina automáticamente.

Las próximas secciones aclararán mejor el concepto de una secuencia en Postgres.

Cómo crear una secuencia en Postgres

Esta sección presenta varios ejemplos para crear una secuencia desde múltiples perspectivas. Cada ejemplo se refiere a un tipo diferente de secuencia.

Ejemplo 1 : Este comando crea una secuencia llamada "Linuxhint" con el valor inicial de 5 y el valor de incremento de 2:

# Crear secuencia Linuxhint Incremento 2 Inicio 5;

Ejemplo 2: Además, si el incremento se establece en cualquier valor negativo (-), entonces la secuencia comienza desde el valor máximo y desciende al valor mínimo especificado. Por ejemplo, el comando proporcionado a continuación creará una secuencia con las siguientes propiedades:

- "Linux"Como nombre de secuencia

- "-2"Como valor de incremento, lo que significa que la secuencia descenderá con una diferencia de -2.

- "10"Como valor inicial, dado que el incremento es un valor negativo, el valor máximo también sería 10.

- Por último, el parámetro del ciclo también se usa

# Crear secuencia Linux Incremento -2 Minvalue 2 MaxValue 10 Inicio 10 ciclo;

Cómo obtener secuencias de una base de datos

Cada secuencia está asociada con una base de datos. Por ejemplo, estamos registrados en el Linuxhint base de datos y hemos recuperado todas las secuencias con la ayuda del comando proporcionado a continuación:

En el comando de abajo establecido, el relnévolo y secuence_name se obtienen de Pg_class. El Pg_class En Postgres contiene la información de las tablas sobre la (s) base (s) de datos (s).

Verías dos categorías en la salida; Uno se refiere a las secuencias asociadas con la clave principal de las tablas y la otra categoría indica las secuencias definidas por el usuario que se crean por separado (como en la sección anterior).

# Seleccione Relname secuence_name de PG_Class donde relkind = 's';

Cómo obtener el siguiente valor actual/actual de una secuencia

Hay varias funciones que se pueden usar para obtener el valor actual y siguiente de una secuencia en Postgres. La función NextVal imprime el siguiente valor en una secuencia utilizando la sintaxis que se da a continuación:

Seleccione NEXTVAL ('SECUENCIA NAME')

El comando escrito a continuación imprimirá el siguiente valor del "Linuxhint" secuencia. Si sigue ejecutando el comando NextVal, obtendría el siguiente valor según la condición de incremento de la secuencia. Como el "Linuxhint" La secuencia se incrementa por 2, por lo que cada valor siguiente se imprimiría después de incrementar por 2.

# Seleccione NextVal ('LinuxHint');

Una vez que se obtiene el siguiente valor, puede obtener el valor actual de la secuencia utilizando la función CurrVal. El CurrVal imprimirá la salida obtenida por la función NextVal. Por ejemplo, la última función de NextVal ha mostrado la salida 7, por lo que el resultado de CurrVal debe ser 7. Del mismo modo, cualquier valor se obtiene utilizando la función NextVal reciente, debe ser imprimida por Currval. La función CurrVal funciona en la siguiente sintaxis:

Seleccione CurrVal ('secuencia-name')

Obtengamos el valor actual de la secuencia "Linuxhint" con la ayuda del comando mencionado anteriormente:

# Seleccione Currval ('LinuxHint');

Además, la función CurrVal depende de la función NextVal. Si la función NextVal aún no se aplica a ninguna secuencia, no puede usar la función CurrVal para obtener el valor actual. Por ejemplo, si aplicamos la función CurrVal en el "Linux" secuencia en la que no hemos aplicado la función NextVal, entonces se mostrará el siguiente error.

# Seleccione Currval ('Linux');

Este error se puede resolver ejecutando la función NextVal en la secuencia tal como la experimentamos en el "Linux" secuencia, y el error se resuelve.

# Seleccione NextVal ('Linux');
# Seleccione Currval ('Linux');

Cómo eliminar una secuencia

Puede soltar cualquier secuencia de su base de datos utilizando la Declaración de secuencia de caída de Postgres. En el caso de dejar caer la tabla, se eliminaría una secuencia propiedad de cualquier columna. El comando proporcionado aquí deja caer el "Linux" secuencia.

# Secuencia de caída si existe Linux;

Conclusión

En general, lo que viene a su mente después de obtener el secuencia palabra? Una lista ordenada de números. Sí, el concepto también es el mismo en Postgres. Esta publicación explica el concepto de secuencia y demuestra su funcionalidad básica en Postgres. Hemos estudiado la creación de secuencias de múltiples maneras en esta guía. Además, también se discuten las funciones de valor de las secuencias de la siguiente y actual.