PostgreSQL: cree una columna de incremento automático usando SERIAL

En PostgreSQL , una secuencia es un tipo especial de objeto de base de datos que genera una secuencia de enteros. Una secuencia se usa a menudo como la columna de clave principal en una tabla.
El pseudotipo SERIAL se puede usar para generar una secuencia mientras se crea una nueva tabla.

Syntax:
CREATE TABLE table_name(
    id SERIAL
);

En la sintaxis anterior, al establecer el pseudotipo SERIAL en la id columna, PostgreSQL realiza lo siguiente:

  • Primero, cree un objeto de secuencia y establezca el siguiente valor generado por la secuencia como valor predeterminado para la columna.
  • En segundo lugar, agregue una restricción NOT NULL a la columna id porque una secuencia siempre genera un número entero, que es un valor no nulo.
  • Tercero, asigne el propietario de la secuencia a la columna id; como resultado, el objeto de secuencia se elimina cuando se elimina la columna o la tabla de identificación.

La sintaxis anterior es equivalente a la siguiente declaración:

CREATE SEQUENCE table_name_id_seq;

CREATE TABLE table_name (
    id integer NOT NULL DEFAULT nextval('table_name_id_seq')
);

ALTER SEQUENCE table_name_id_seq
OWNED BY table_name.id;

PostgreSQL proporciona tres pseudotipos seriales SMALLSERIAL, SERIAL y BIGSERIAL con las siguientes características:

Nombre Tamaño de almacenamiento Rango
PEQUEÑASERIA 2 bytes 1 a 32, 767
DE SERIE 4 bytes 1 a 2, 147, 483, 647
SERIE GRANDE 8 bytes 1 a 9, 223, 372, 036, 854, 775, 807

Ahora veamos un ejemplo para una mejor comprensión.
Ejemplo:
La siguiente sentencia crea la animals tabla con la id columna como columna SERIAL:

CREATE TABLE animals(
   id SERIAL PRIMARY KEY,
   name VARCHAR NOT NULL
);

Ahora insertaremos un solo valor en la tabla de animales como se muestra a continuación:

INSERT INTO animals(name) 
VALUES('Dog');

Repetimos la declaración anterior con un valor diferente como se muestra a continuación:

INSERT INTO animals(name) 
VALUES('Cat');

PostgreSQL insertó dos filas en la animals tabla con los valores de la id columna 1 y 2. Para verificarlo, use la siguiente declaración:

SELECT * FROM animals;

Producción:

Ejemplo 2:
la siguiente declaración inserta una nueva fila en la animals tabla y devuelve el valor generado para la id columna:

INSERT INTO animals(name) 
VALUES('Tiger')
RETURNING id; 

Producción:

Publicación traducida automáticamente

Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *