¿Cómo configurar la clave principal de incremento automático de PostgreSQL?

How Setup Postgresql Auto Increment Primary Key



Puede haber ocasiones en las que cree y mantenga tablas en PostgreSQL cuando desee valores particulares para una columna que se genera a pedido. Esto sería particularmente cierto para las columnas de identificación que actúan como la clave principal de la tabla. Afortunadamente, el pseudo-tipo SERIAL permite hacer que una serie entera de incremento automático sea conveniente. Una serie es un tipo de objeto de base de datos en PostgreSQL que produce una serie de índices o enteros. Una secuencia de PostgreSQL produce una cadena de enteros distintos, lo que la hace adecuada para usarse como clave primaria al generar una nueva tabla. Le demostraremos qué menas de incremento automático en PostgreSQL y usaremos el pseudo-tipo SERIAL a lo largo de esta guía.

Sintaxis:

La sintaxis general para crear la clave primaria de incremento automático es la siguiente:







>>CREATE TABLE nombre_tabla( identificaciónDE SERIE);

Echemos ahora un vistazo a la declaración CREATE TABLE con más detalle:



  • PostgreSQL genera primero una entidad en serie. Produce el siguiente valor de la serie y lo establece como el valor de referencia predeterminado del campo.
  • PostgreSQL aplica la restricción implícita NOT NULL a un campo de identificación ya que una serie produce valores numéricos.
  • El campo de identificación se asignará como titular de la serie. Si se omite el campo id o la tabla en sí, la secuencia se descartará.

Para obtener el concepto de incremento automático, asegúrese de que PostgreSQL esté montado y configurado en su sistema antes de continuar con las ilustraciones de esta guía. Abra el shell de línea de comandos de PostgreSQL desde el escritorio. Agregue el nombre de su servidor en el que desea trabajar; de lo contrario, déjelo en el valor predeterminado. Escriba el nombre de la base de datos que se encuentra en su servidor en el que desea trabajar. Si no desea cambiarlo, déjelo como predeterminado. Usaremos la base de datos de prueba, por eso la hemos agregado. También puede trabajar en el puerto predeterminado 5432, pero también puede cambiarlo. Al final, debe proporcionar el nombre de usuario para la base de datos que elija. Déjelo en el valor predeterminado si no desea cambiarlo. Escriba su contraseña para el nombre de usuario seleccionado y presione Enter desde el teclado para comenzar a usar el shell de comandos.







Usando la palabra clave SERIAL como tipo de datos:

Cuando creamos una tabla, generalmente no agregamos la palabra clave SERIAL en el campo de la columna principal. Esto significa que tenemos que agregar los valores a la columna de clave principal mientras usamos la instrucción INSERT. Pero cuando usamos la palabra clave SERIAL en nuestra consulta mientras creamos una tabla, no deberíamos necesitar agregar valores de columna primaria al insertar los valores. Echemos un vistazo.

Ejemplo 01:

Cree una tabla de prueba con dos columnas id y nombre. La identificación de la columna se ha definido como la columna de clave principal ya que su tipo de datos es SERIAL. Por otro lado, el nombre de la columna se define como el tipo de datos TEXT NOT NULL. Pruebe el siguiente comando para crear una tabla y la tabla se creará de manera eficiente como se ve en la imagen a continuación.



>>Prueba CREAR TABLA( identificaciónLLAVE PRIMARIA SERIE, nombre TEXTO NO NULO);

Insertemos algunos valores en el nombre de la columna de la tabla TEST recién creada. No agregaremos ningún valor a la identificación de la columna. Puede ver que los valores se han insertado correctamente utilizando el comando INSERT como se indica a continuación.

>>INSERT INTO Prueba(nombre)VALORES('Aqsa'),('Rimsha'),('Kan');

Es hora de comprobar los registros de la tabla 'Prueba'. Pruebe la siguiente instrucción SELECT en el shell de comandos.

>>SELECCIONE*FROM Test;

En el resultado a continuación, puede observar que la identificación de la columna tiene automáticamente algunos valores, aunque no hemos agregado ningún valor del comando INSERT debido al tipo de datos SERIAL que hemos especificado para la identificación de la columna. Así es como funciona el tipo de datos SERIAL por sí solo.

Ejemplo 02:

Otra forma de verificar el valor de la columna del tipo de datos SERIAL es usando la palabra clave RETURNING en el comando INSERT. La declaración a continuación crea una nueva línea en la tabla de prueba y produce el valor para el campo id:

>>INSERT INTO Prueba(nombre)VALORES('Hassam')REGRESOidentificación;

Al verificar los registros de la tabla Test usando la consulta SELECT, obtuvimos la siguiente salida como se muestra en la imagen. El quinto registro se ha agregado de manera eficiente a la tabla.

>>SELECCIONE*FROM Test;

Ejemplo 03:

La versión alternativa de la consulta de inserción anterior utiliza la palabra clave DEFAULT. Usaremos el nombre de identificación de la columna en el comando INSERT, y en la sección VALUES, le daremos la palabra clave DEFAULT como su valor. La consulta a continuación funcionará de la misma manera después de la ejecución.

>>INSERT INTO Prueba(identificación, nombre)VALORES(DEFAULT, ‘Raza’);

Revisemos la tabla nuevamente usando la consulta SELECT de la siguiente manera:

>>SELECCIONE*FROM Test;

Puede ver en la salida a continuación, el nuevo valor se ha agregado mientras que la identificación de la columna se ha incrementado de forma predeterminada.

Ejemplo 04:

El número de secuencia del campo de la columna SERIAL se puede encontrar en una tabla en PostgreSQL. El método pg_get_serial_sequence () se usa para lograr esto. Tenemos que usar la función currval () junto con el método pg_get_serial_sequence (). En esta consulta, proporcionaremos el nombre de la tabla y su nombre de columna SERIAL en los parámetros de la función pg_get_serial_sequence (). Como puede ver, hemos especificado la prueba de la tabla y la identificación de la columna. Este método se utiliza en el siguiente ejemplo de consulta:

>>SELECCIONAR currval(pg_get_serial_sequence('Prueba', 'identificación));

Vale la pena señalar que nuestra función currval () nos ayuda a extraer el valor más reciente de la secuencia, que es 5. La siguiente imagen es una ilustración de cómo podría verse el rendimiento.

Conclusión:

En este tutorial de guía, hemos demostrado cómo usar el pseudo-tipo SERIAL para auto-incrementar en PostgreSQL. Usando una serie en PostgreSQL, es simple construir un conjunto de números que se incrementan automáticamente. Con suerte, podrá aplicar el campo SERIAL a las descripciones de la tabla utilizando nuestras ilustraciones como referencia.