Secuencia SQL

Secuencia SQL
¿Alguna vez ha usado la declaración de auto-incremento o serie en una base de datos?? Si es así, entonces tienes una secuencia SQL. Aunque las secuencias y las columnas de identidad son ligeramente diferentes, comparten características comunes.

Una secuencia se refiere a un conjunto de valores enteros únicos que se generan a pedido. Son una característica frecuente en muchos motores de base de datos. Esto se debe a que varios escenarios requieren que cada registro en la base de datos tenga un identificador único.

Discutamos el concepto de secuencias SQL en este tutorial.

Cómo funcionan las secuencias SQL

No hay una forma universal de describir cómo funcionan las secuencias. Esto se debe a que varios motores de base de datos los implementan de manera diferente.

Aprendamos cómo funciona esto.

Secuencias en mysql

Las secuencias en MySQL se implementan configurando el atributo Auto_Increment en una columna. En la mayoría de los casos, esta columna también se selecciona como la clave principal, ya que cada valor en la columna debe ser único.

Podemos ilustrar cómo usar una secuencia en MySQL como se muestra en la consulta a continuación:

-- Mysql
crear tabla table_name (
column_name int Auto_Increment Key primario,
column_name2 varchar (100),
);

La consulta anterior crea una columna con una secuencia SQL utilizando la palabra clave Auto_Increment. Tenga en cuenta que también establecemos la restricción de clave principal en la columna.

Aunque agregar secuencias en MySQL es tan fácil como se ilustra anteriormente, hay algunos puntos a tener en cuenta:

  1. La columna de secuencia en mysql debe estar indexada. Esto significa configurar la columna como clave principal o única.
  2. La columna no puede contener valores nulos. Puede resolver esto estableciendo la restricción no nula en la columna. En algunos casos, MySQL puede especificar explícitamente la restricción no nula cuando se agrega la restricción automática.
  3. Los valores en la columna de secuencia comienzan desde 1 y aumentan en 1 para cada registro agregado a la tabla.
  4. Myisam e innodb no admiten la reutilización de números de secuencia eliminados. Por lo tanto, MySQL asignará el siguiente valor a la siguiente secuencia insertada si elimina un registro. Por ejemplo, si elimina 10, MySQL no reutilizará ese valor. En cambio, asignará 11 al siguiente registro.
  5. MySQL le permite restablecer el valor de incremento automático.

Secuencia en PostgreSQL

En PostgreSQL, las secuencias son objetos definidos por el usuario unidos al esquema en el que se crean.

Para crear una secuencia en PostgreSQL, use la sintaxis como se muestra a continuación:

-- Postgresql
crear secuencia [si no existe] secuence_name
como data_type
incremento por [increment_value]
minvalue [minumum_value] | sin minumum_value
MaxValue [Maximum_Value] | sin máximo_value
Comienza [con] Comienza
cache
Sin ciclo
Propiedad de [table_name.column_name] ninguno

Bien, ¿qué significa todo eso?? Permítanos dividirlo en secciones más pequeñas que podamos entender.

Crear secuencia

La primera parte es la secuencia de creación. Esto le permite crear una nueva secuencia si no existe. El nombre de la secuencia puede ser cualquier cosa que desee.

Como data_type

La cláusula AS le permite especificar el tipo de datos para la secuencia. PostgreSQL permite tipos de SmallInt, Int y Bigint. Si no desea identificar el tipo de datos, puede omitir esta cláusula, y PostgreSQL se debe por defecto a BigInt a BigInt.

Incrementar por

Esta cláusula especifica el valor que se agrega a la secuencia actual para crear un nuevo valor de secuencia. Por ejemplo, si la secuencia es 1,2,3,4,5, el valor de incremento es 1.

Si desea comenzar desde la parte superior y descender a medida que se agregan los registros, especifique un valor negativo al incremento por cláusula.

Por defecto, PostgreSQL utilizará el valor de incremento de 1.

MinValue

Esta cláusula define el valor mínimo para la secuencia. Si no se especifica ningún valor, PostgreSQL usará el valor predeterminado.

VALOR MÁXIMO

La cláusula MaxValue establece el valor máximo para la secuencia.

COMIENZA CON

Esta cláusula establece el valor de inicio para la secuencia. Si no se especifica ningún valor, el minvalue se usa para secuencias ascendentes, y MaxVule se usa para secuencias descendentes.

CACHE

Esta cláusula definirá cuántos números de secuencia debe ser preellocado y almacenado en la memoria. Esto permite un acceso más rápido. Por defecto, PostgreSQL utilizará un valor de 1, por lo tanto, no cache.

CICLO

La cláusula de ciclo le permite especificar la envoltura cuando los valores máximos o min se alcanzan en la secuencia. PostgreSQL usará Min y MaxValue respectivamente cuando se alcanza el límite si no se especifica el ciclo.

PROPIEDAD DE

Esta opción especifica con la cual la columna de tabla está asociada. Por lo tanto, si se cae la columna o la tabla, la secuencia también se elimina.

Si la secuencia no está asociada con ninguna tabla o columna, puede establecer la propiedad de Ninguno.

Para crear una secuencia simple en PostgreSQL, ejecute la consulta:

crear secuencia my_seq
incremento por 1
Minvalue 1
MaxValue 1000
Inicio 1
propiedad de my_table.my_column

La consulta anterior crea una nueva secuencia asociada con my_column en la tabla my_table.

Puede explorar más sobre las secuencias PostgreSQL en el recurso a continuación:

https: // www.postgresql.org/Docs/Current/SQL-CreateSequence.html

Secuencias en SQL Server

Al igual que PostgreSQL, las secuencias en SQL Server son objetos definidos por el usuario. Por lo tanto, usan sintaxis muy similar para secuencias en PostgreSQL. La única diferencia es la sintaxis.

La sintaxis de ejemplo es como se ilustra a continuación:

Crear secuencia [schema_name.] secuence_name
[Como integer_type]
[Comience con Start_Value]
[Incremento por increment_value]
[Minvalue [min_value] | No MinValue]
[MaxValue [max_value] | No MaxValue]
[Ciclo | Sin ciclo]
[Caché [cache_size] | Sin caché];

En lugar de ninguno, SQL Server no usa ciclo ni caché.

Puede explorar más sobre las secuencias de SQL Server en el recurso a continuación:

https: // documentos.Microsoft.com/en-us/sql/t-sql/stementations/create-secuence-transact-sql?Ver = sql-server-ver15

Nota: Para los usuarios de la base de datos de Oracle, consulte el recurso a continuación

https: // documentos.oráculo.com/cd/b12037_01/servidor.101/b10759/Statements_6014.htm

Conclusión

Este artículo detallado cubrió secuencias SQL y cómo podemos usarlas en nuestras bases de datos. Estén atentos para más tutoriales.