En esta sección, vamos a entender el funcionamiento de Serie PostgreSQL pseudotipo, que nos permite definir columnas de incremento automático en tablas. Y también vemos ejemplos del Pseudotipo serial de PostgreSQL .
¿Qué es el pseudotipo serial de PostgreSQL?
En PostgreSQL, tenemos un tipo particular de generador de objetos de base de datos conocido como De serie , que está acostumbrado a crear una secuencia de números enteros que se utilizan frecuentemente como Clave primaria en una mesa.
La secuencia se puede generar con la ayuda del Pseudotipo SERIE , mientras estamos creando una nueva tabla, como podemos ver en el siguiente comando:
CREATE TABLE table_name( ID SERIAL );
PostgreSQL hace lo siguiente si proporcionamos el Pseudotipo SERIE hacia IDENTIFICACIÓN columna:
- En primer lugar, PostgreSQL creará un objeto de secuencia y luego establecerá el siguiente valor creado por la secuencia como el valor predefinido de la columna particular.
- Después de eso, PostgreSQL mejorará un Restricción NO NULA hacia columna de identificación dado que una secuencia siempre produce un número entero que es un valor no nulo .
- Por fin, PostgreSQL proporcionará el propietario de la secuencia al columna de identificación; como salida, el objeto de secuencia se elimina cuando la tabla o columna de identificación se deja caer.
Nota: Podemos usar ambos comandos para especificar el pseudotipo de serie, ya que los siguientes comandos son similares entre sí.
CREATE TABLE table_name( ID SERIAL );
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;
El Pseudotipo serial de PostgreSQL Se ha clasificado en tres tipos que son los siguientes:
Tenemos la siguiente tabla, que contiene todos los Pseudotipo serial especificación compatible con PostgreSQL:
Nombre | Tamaño de almacenamiento | Rango |
---|---|---|
SERIE PEQUEÑA | 2 bytes | 1 a 32767 |
DE SERIE | 4 bytes | 1 al 2147483647 |
GRAN SERIE | 8 bytes | 1 al 9223372036854775807 |
Sintaxis del pseudotipo serial de PostgreSQL
La sintaxis de PostgreSQL Pseudotipo serial como sigue:
variable_name SERIAL
Ejemplos de tipo SERIAL de PostgreSQL
Veamos diferentes ejemplos para entender cómo El pseudotipo serial de PostgreSQL funciona .
Nota: Podemos definir la restricción PRIMARY KEY para la columna SERIAL porque el tipo SERIAL no crea indirectamente un índice en la columna ni convierte la columna en la columna de clave principal.
Estamos creando una nueva tabla con la ayuda del comando CREATE e insertando algunos valores usando el comando INSERT.
En el siguiente ejemplo, estamos usando el CREAR comando para generar un Carros mesa en el Base de datos de la organización:
CREATE TABLE Cars( Car_id SERIAL PRIMARY KEY, Car_name VARCHAR NOT NULL, Car_model VARCHAR NOT NULL );
Producción
El Carros La tabla se ha creado correctamente después de ejecutar los comandos anteriores, como se muestra en la siguiente captura de pantalla:
Una vez el Carros Se ha generado la tabla, podemos insertar algunos valores en ella usando el comando INSERT. Y podemos usar el POR DEFECTO palabra clave en el comando INSERT u omitir el nombre de la columna (identificación del coche) .
INSERT INTO Cars(Car_name, Car_model) VALUES('Porche','911 Carrera');
Producción
Después de implementar el comando anterior, recibiremos el siguiente mensaje y el valor se ha insertado correctamente en el Carros mesa:
O Utilizando el Palabra clave DEFAULT con el nombre de la columna (Coche_id):
INSERT INTO Cars(Car_id, Car_name, Car_model) VALUES(DEFAULT,'Audi','A8');
Producción
Al implementar el comando anterior, recibiremos el siguiente mensaje; el valor se ha insertado exitosamente en el Carros mesa:
Como podemos ver en la captura de pantalla anterior, PostgreSQL insertó dos filas en el Carros mesa con el coche_id los valores de las columnas son 1 y 2 .
Después de crear e insertar el Carros valores de la tabla, usaremos el SELECCIONAR El comando devuelve todas las filas del Carros mesa:
SELECT * FROM Cars;
Producción
Después de implementar con éxito el comando anterior, obtendremos el siguiente resultado:
¿Qué es el conjunto de hash de Java?
Podemos usar el pg_get_serial_sequence() función para obtener el nombre de secuencia de un DE SERIE columna en una tabla especificada como podemos ver en la siguiente sintaxis:
pg_get_serial_sequence('table_name','column_name')
Para obtener el valor actual creada por la secuencia, podemos pasar un nombre de secuencia a la función currval().
En el siguiente ejemplo, utilizamos la curva() función para devolver el valor actual producido por el Carros mesa Car_id_seq objeto:
SELECT currval(pg_get_serial_sequence('Cars', 'car_id'));
Producción
Después de implementar el comando anterior, obtendremos el siguiente resultado:
Podemos usar el REGRESANDO Car_id cláusula en el comando INSERT si queremos obtener esos valores creados por la secuencia cuando insertamos una nueva fila en la tabla.
El siguiente comando se utiliza para insertar una nueva fila en el Carros tabla y devuelve aquellos registros generados para el coche_id columna.
INSERT INTO Cars(Car_name,Car_model) VALUES('Jaguar', 'XK') RETURNING Car_id;
Producción
Al ejecutar el comando anterior, obtendremos el siguiente resultado, que devuelve el coche_id como 3 :
Nota:
comparación de cadenas c#
- Como entendimos anteriormente, el generador de secuencia La operación no es segura para transacciones, lo que implica que cada usuario obtendrá un valor diferente. si dos bases de datos paralelas Las conexiones intentan obtener el siguiente valor de una secuencia.
- Y el número de secuencia de ese usuario estará inactivo y creará un espacio en la secuencia si un usuario puede revertir la transacción .
Ejemplo2
Veamos un ejemplo más para aprender el Pseudotipo serial en detalle.
Entonces, vamos a crear otra tabla nueva como Verduras tabla con la ayuda del comando CREATE en una similar base de datos eso es Organización con el id_veg columna como la DE SERIE pseudotipo.
CREATE TABLE Vegetables( Veggie_id SERIAL PRIMARY KEY, Veggie_name VARCHAR NOT NULL, Veggie_seasons VARCHAR NOT NULL );
Producción
El Verduras La tabla se ha creado correctamente después de ejecutar los comandos anteriores, como se muestra en la siguiente captura de pantalla:
Una vez el Verduras Se ha generado la tabla, insertaremos algunos valores en ella usando el comando INSERT y omitiremos el verduras_id columna como se muestra en el siguiente comando:
INSERT INTO Vegetables(Veggie_name,Veggie_seasons) VALUES('Broccoli','Spring');
Producción
Recibiremos el siguiente mensaje al implementar el comando anterior: el valor se ha insertado correctamente en el Verduras mesa.
O también podemos usar el Por defecto palabra clave y utiliza la vegetariano_id columna como se muestra en el siguiente comando:
INSERT INTO Vegetables (Veggie_id,Veggie_seasons, Veggie_seasons) VALUES(DEFAULT, 'Sweet Potatoes','Winter');
Producción
Después de ejecutar el comando anterior, recibiremos el siguiente mensaje, que dice que podemos usar el Palabra clave predeterminada o el ignorar el nombre de la columna , obtendremos un resultado similar:
Por lo tanto, agregaremos algunos valores más a la Carros tabla con la ayuda de seguir el comando:
INSERT INTO Vegetables(Veggie_name,Veggie_seasons) VALUES('Jalapeno Peppers','Fall'), ('Cucumbers','Summer'), ('Winter Squash','Winter'), ('Snow Peas','Spring'), ('Black Radish','All seasons'), ('Pumpkin','Fall');
Producción
Después de ejecutar el comando anterior, recibiremos el siguiente mensaje, que muestra que el valor se ha insertado correctamente en el Verduras mesa.
Después de crear e insertar el Verduras valores de la tabla, usaremos el SELECCIONAR comando para devolver todas las filas del Verduras mesa:
SELECT * FROM Vegetables;
Producción
Después de implementar con éxito el comando anterior, obtendremos el siguiente resultado:
Descripción general
En el Pseudotipo serial de PostgreSQL sección, hemos aprendido la funcionalidad de pseudotipo Serial, que se utiliza principalmente para crear un aumentos automáticos valor de columna para una tabla en particular.