Tipo de datos enumerados de PostgreSQL

Tipo de datos enumerados de PostgreSQL

El tipo de datos enumerados o enum se utiliza para seleccionar un valor de la lista de valores múltiples. El valor particular se seleccionará de la lista desplegable para el tipo de datos enum. Los valores de Enum son estáticos, únicos y sensibles a las casos. Por lo tanto, los usuarios deben seleccionar cualquier valor de los valores de Enum. El valor de entrada que no coincide con ningún valor de enum no se puede insertar en el campo Enum. Este tipo de datos toma 4 bytes para almacenar en la tabla. El tipo de datos enum es útil para almacenar esos tipos de datos que no están obligados a cambiar en el futuro. Ayuda a insertar datos válidos solo. Los usos del tipo de datos enum en PostgreSQL se han mostrado en este tutorial.

Requisitos previos:

Debe instalar la última versión de los paquetes PostgreSQL en el sistema operativo Linux antes de ejecutar las declaraciones SQL que se muestran en este tutorial. Ejecute los siguientes comandos para instalar e iniciar el PostgreSQL:

$ sudo apt-get -y instalación postgresql postgresql-contrib
$ sudo systemctl iniciar postgresql.servicio

Ejecute el siguiente comando para iniciar sesión en PostgreSQL con permiso raíz:

$ sudo -u postgres psql

Usos del tipo de datos enum:

Antes de crear cualquier tabla con el tipo de datos booleanos, debe crear una base de datos PostgreSQL. Entonces, ejecute el siguiente comando para crear una base de datos llamada 'testdb':

# Crear base de datos TestDB;

La siguiente salida aparecerá después de crear la base de datos:

Cree y lea el tipo de enum:

Ejecute el siguiente comando Crear para crear un tipo enum llamado Account_status con tres valores:

# Crea type cuenta_status como enum ('pendiente', 'inactivo', 'activo');

Ejecute el siguiente comando seleccionar para imprimir los valores del tipo enum que se ha creado antes:

# Seleccione Unnest (enum_range (null :: cuenta_status)) como cuenta_status;

La siguiente salida aparecerá después de ejecutar los comandos anteriores:

Cambie el nombre del tipo enum:

Ejecute el siguiente comando para cambiar el nombre del tipo enum desde 'Account_status' para 'estado':

# Alter tipo cuenta_status renombrar al estado;

Cree una tabla utilizando el tipo de datos enum:

Crear una tabla llamada 'cuenta'En la base de datos actual con tres campos. El primer nombre de campo es el nombre de usuario Esa es la clave principal del. El segundo nombre de campo es el nombre y el tipo de datos es Varchar (30). El tercer nombre de campo es DIRECCIÓN y el tipo de datos es TEXTO. El cuarto nombre de campo es correo electrónico y el tipo de datos es Varchar (50). El quinto nombre de campo es a_status y el tipo de datos es Enumer que se ha creado antes.

# Crear cuenta de tabla (
Nombre de usuario Varchar (20) Clave principal,
Nombre Varchar (30),
Texto de dirección,
Envíe un correo electrónico a Varchar (50),
estado a_status);

La siguiente salida aparecerá después de ejecutar el comando anterior:

Inserte datos en la tabla:

Ejecute la siguiente consulta de inserción para insertar tres registros en la tabla de cuenta. Todos los valores del campo ENUM son válidos aquí:

# Insertar en cuenta (nombre de usuario, nombre, dirección, correo electrónico, a_status)
VALORES
('Farhad1278', 'Farhad Hossain', '123/7, Dhanmondi Dhaka.',' [email protected] ',' activo '),
('Nira8956', 'Nira Akter', '10/A, Jigatola Dhaka.',' [email protected] ',' inactivo '),
('Jafar90', 'Jafar Iqbal', '564, Mirpur Dhaka.',' [email protected] ',' pendiente ');

La siguiente salida aparecerá después de ejecutar la consulta anterior:

Ejecute la siguiente consulta de inserción para insertar un registro en el cuenta tabla pero el valor dado para el campo enum no existe en el tipo enum:

# Insertar en cuenta (nombre de usuario, nombre, dirección, correo electrónico, a_status)
VALORES
('Rifad76', 'Rifad Hasan', '89, Gabtoli Dhaka.',' [email protected] ',' bloqueado ');

La siguiente salida aparecerá después de ejecutar la consulta anterior. El error ha ocurrido en la salida para dar un valor enum que no existe en el tipo enum.

Ejecute el siguiente comando seleccionar para leer todos los registros del cuenta mesa:

# Seleccionar * de la cuenta;

Ejecute el siguiente comando seleccionar para leer esos registros del cuenta tabla que contiene el 'Activo' o 'pendiente' Valor en el campo Enum:

# Seleccionar * de la cuenta donde a_status = 'activo' o a_status = 'pendiente';

La siguiente salida aparecerá después de ejecutar lo anterior SELECCIONAR Consultas:

Cambiar el valor enum:

Si se cambia algún valor existente del tipo enum, entonces el Enumer valor de campo de la tabla donde eso Enumer ha sido utilizado se cambiará también.

Ejecutar lo siguiente ALTERAR ordenar cambiar Enumer valor 'Activo' a 'en línea':

# Alter Tipo Estado Cambiar el valor 'Active' a 'en línea';

Ejecute el siguiente comando seleccionar para verificar los registros del cuenta tabla después de cambiar el valor enum:

# Seleccionar * de la cuenta;

La siguiente salida aparecerá después de ejecutar los comandos anteriores. Hubo un registro en la tabla que contiene el valor de enumación ','Activo'. La salida muestra que el valor 'activo' se ha cambiado a 'en línea' después de cambiar el valor de enum.

Agregue un nuevo valor a un tipo de datos enum existente:

Ejecute el siguiente comando ALTER para agregar un nuevo elemento al tipo enum llamado estado:

# Alter Tipo Estado Agregar valor 'bloqueado';

Ejecute la siguiente consulta de selección que imprima la lista de tipos de enumes después de agregar el nuevo valor:

# Seleccione Unnest (enum_range (null :: status)) como cuenta_status;

La siguiente salida aparecerá después de ejecutar la consulta anterior:

Se puede insertar un nuevo valor antes o después del valor particular de un Enumer tipo. Ejecute el primer comando alter para agregar el nuevo valor, 'Bloqueado' antes del valor 'inactivo'. Correr el segundo ALTERAR Comando para agregar el nuevo valor, 'Bloqueado' después del valor 'inactivo'.

# Alter Tipo Estado Agregar valor 'bloqueado' antes 'inactivo';
# Alter Tipo Estado Agregar valor 'Bloqueado' After 'Inactive';

Eliminar el tipo de datos enum:

Debe eliminar la tabla donde se usa el tipo de enum. Ejecute el siguiente comando para eliminar la tabla:

# Cuenta de tabla de caída;

Ejecute el siguiente comando para eliminar el tipo enum después de quitar la tabla:

# Estado de tipo de caída;

Conclusión:

Las formas de crear, actualizar y eliminar los tipos de datos de ENUM en PostgreSQL y los usos de los tipos de datos de enum en la tabla PostgreSQL se han mostrado en este tutorial que ayudará a los nuevos usuarios de PostgreSQL a conocer el propósito de usar los tipos de datos de ENUM correctamente.