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