Tipo de dados enumerado PostGresql

Tipo de dados enumerado PostGresql

O tipo de dados enumerado ou enum é usado para selecionar um valor na lista de vários valores. O valor específico será selecionado na lista suspensa para o tipo de dados enum. Os valores da enumeração são estáticos, únicos e sensíveis ao caso. Portanto, os usuários precisam selecionar qualquer valor dos valores da enumeração. O valor de entrada que não corresponde a nenhum valor enum não pode ser inserido no campo Enum. Este tipo de dados leva 4 bytes para armazenar na tabela. O tipo de dados enum é útil para armazenar esses tipos de dados que não precisam mudar no futuro. Ajuda a inserir apenas dados válidos. Os usos do tipo de dados enum no PostgreSQL foram mostrados neste tutorial.

Pré-requisitos:

Você deve instalar a versão mais recente dos pacotes PostGresql no sistema operacional Linux antes de executar as instruções SQL mostradas neste tutorial. Execute os seguintes comandos para instalar e iniciar o PostgreSQL:

$ sudo apt-get -y install postgresql postgresql-contra
$ sudo SystemCtl Iniciar PostgreSQL.serviço

Execute o seguinte comando para fazer login no PostgreSQL com permissão de raiz:

$ sudo -u postgres psql

Usos do tipo de dados enum:

Antes de criar qualquer tabela com o tipo de dados booleano, você deve criar um banco de dados PostGresql. Então, execute o seguinte comando para criar um banco de dados chamado 'testdb':

# Criar banco de dados TestDB;

A saída a seguir será exibida após a criação do banco de dados:

Crie e leia o tipo enum:

Execute o seguinte comando Criar para criar um tipo de enum chamado Account_status com três valores:

# Criar tipo Type Account_status como enum ('pendente', 'inativo', 'ativo');

Execute o seguinte comando select para imprimir os valores do tipo Enum que já foi criado antes:

# Selecione UNSONST (enum_Range (null :: account_status)) como conta_status;

A saída a seguir aparecerá após a execução dos comandos acima:

Renomeie o tipo enum:

Execute o seguinte comando para alterar o nome do tipo de enum de 'Account_status' para 'status':

# Altere tipo conta_status renomear para status;

Crie uma tabela usando o tipo de dados enum:

Crie uma tabela chamada 'conta'No banco de dados atual com três campos. O primeiro nome de campo é o nome de usuário essa é a chave primária do. O segundo nome de campo é o nome e o tipo de dados é Varchar (30). O terceiro nome de campo é endereço e o tipo de dados é TEXTO. O quarto nome do campo é e-mail e o tipo de dados é Varchar (50). O quinto nome de campo é a_status e o tipo de dados é Enum que foi criado anteriormente.

# Criar conta de tabela (
nome de usuário Varchar (20) Chave primária,
Nome Varchar (30),
Texto do endereço,
Email Varchar (50),
status a_status);

A saída a seguir aparecerá após a execução do comando acima:

Insira dados na tabela:

Execute a seguinte consulta de inserção para inserir três registros na tabela de conta. Todos os valores do campo Enum são válidos aqui:

# Insira em conta (nome de usuário, nome, endereço, e -mail, a_status)
Valores
('Farhad1278', 'Farhad Hossain', '123/7, Dhanmondi Dhaka.',' [email protected] ',' ativo '),
('NIRA8956', 'Nira Akter', '10/a, Jigatola dhaka.',' [email protected] ',' inativo '),
('Jafar90', 'Jafar Iqbal', '564, Mirpur Dhaka.',' [email protected] ',' pendente ');

A saída a seguir aparecerá após a execução da consulta acima:

Execute a seguinte consulta de inserção para inserir um registro no conta Tabela, mas o valor fornecido para o campo enum não existe no tipo de enumeração:

# Insira em conta (nome de usuário, nome, endereço, e -mail, a_status)
Valores
('rifad76', 'rifad hasan', '89, gabtoli dhaka.',' [email protected] ',' bloqueado ');

A saída a seguir aparecerá após a execução da consulta acima. O erro ocorreu na saída para fornecer um valor de enumeração que não existe no tipo de enumeração.

Execute o seguinte comando select para ler todos os registros do conta mesa:

# Selecione * na conta;

Execute o seguinte comando select para ler esses registros do conta tabela que contém o 'Ativo' ou 'pendente' Valor no campo Enum:

# Selecione * da conta onde a_status = 'ativo' ou a_status = 'pendente';

A saída a seguir aparecerá após a execução do acima Selecione Consultas:

Altere o valor da enumeração:

Se algum valor existente do tipo de enumeração for alterado, então o Enum valor de campo da tabela onde isso Enum foi usado será alterado também.

Execute o seguinte ALTERAR comando para mudar Enum valor 'Ativo' para 'online':

# Alter Type Status Renomear valor 'ativo' para 'online';

Execute o seguinte comando select para verificar os registros do conta Tabela depois de alterar o valor da enumeração:

# Selecione * na conta;

A saída a seguir aparecerá após a execução dos comandos acima. Havia um registro na tabela que contém o valor da enumeração, 'Ativo'. A saída mostra que o valor 'ativo' foi alterado para 'online' depois de alterar o valor da enumeração.

Adicione um novo valor a um tipo de dados enum existente:

Execute o seguinte comando alter para adicionar um novo item no tipo de enum nomeado status:

# Alter Type Status Adicionar valor 'bloqueado';

Execute a seguinte consulta selecionada que imprimirá a lista de tipos de enum após adicionar o novo valor:

# Selecione UNSONS (enum_Range (null :: status)) como conta_status;

A saída a seguir aparecerá após a execução da consulta acima:

Um novo valor pode ser inserido antes ou depois do valor particular de um existente Enum tipo. Execute o primeiro comando alter para adicionar o novo valor, 'Bloqueado' antes do valor 'inativo'. Execute o segundo ALTERAR comando para adicionar o novo valor, 'Bloqueado' após o valor 'inativo'.

# Alter Type Status Adicione valor 'bloqueado' antes de 'inativo';
# Alter Type Status Adicione valor 'bloqueado' após 'inativo';

Excluir tipo de dados enum:

Você precisa excluir a tabela onde o tipo de enumeração é usado antes de remover o tipo de enumeração. Execute o seguinte comando para remover a tabela:

# Conta de tabela de soltar;

Execute o seguinte comando para remover o tipo de enumeração após remover a tabela:

# Status do tipo de queda;

Conclusão:

As maneiras de criar, atualizar e excluir tipos de dados enum no PostGresql e os usos dos tipos de dados enum na tabela PostgreSql foram mostrados neste tutorial que ajudarão os novos usuários do PostGresql a conhecer o objetivo de usar os tipos de dados de enum corretamente.