Tipo di dati enumerato PostgreSQL

Tipo di dati enumerato PostgreSQL

Il tipo di dati enumerato o enum viene utilizzato per selezionare un valore dall'elenco di più valori. Il valore particolare verrà selezionato dall'elenco a discesa per il tipo di dati Enum. I valori enum sono statici, unici e sensibili al caso. Quindi, gli utenti devono selezionare qualsiasi valore dai valori ENUM. Il valore di input che non corrisponde a nessun valore ENUM non può essere inserito nel campo Enum. Questo tipo di dati richiede 4 byte per archiviare nella tabella. Il tipo di dati Enum è utile per archiviare questi tipi di dati che non sono tenuti a cambiare in futuro. Aiuta a inserire solo dati validi. Gli usi del tipo di dati Enum in PostgreSQL sono stati mostrati in questo tutorial.

Prerequisiti:

È necessario installare l'ultima versione dei pacchetti PostgreSQL sul sistema operativo Linux prima di eseguire le istruzioni SQL mostrate in questo tutorial. Esegui i seguenti comandi per installare e avviare PostgreSQL:

$ sudo apt-get -y installa postgresql postgresql-confrib
$ sudo systemctl Inizia postgresql.servizio

Esegui il seguente comando per accedere a PostgreSQL con l'autorizzazione alla radice:

$ sudo -u postgres psql

Usi del tipo di dati Enum:

Prima di creare qualsiasi tabella con il tipo di dati booleani, è necessario creare un database PostgreSQL. Quindi, esegui il seguente comando per creare un database chiamato 'testdb':

# Crea test Database TestDB;

Verrà visualizzato il seguente output dopo la creazione del database:

Crea e leggi il tipo ENUM:

Esegui il seguente comando Crea per creare un tipo ENUM chiamato account_status con tre valori:

# Crea type account_status come enum ("in sospeso", "inattivo", "attivo");

Esegui il seguente comando Seleziona per stampare i valori del tipo ENUM creato prima:

# Seleziona UnNest (enum_range (null :: account_status)) come account_status;

Verrà visualizzato il seguente output dopo aver eseguito i comandi sopra:

Rinominare il tipo enum:

Esegui il comando seguente per modificare il nome del tipo enum da 'account_status' a 'status':

# Alter type account_status Rinomina sullo stato;

Crea una tabella utilizzando il tipo di dati Enum:

Crea una tabella chiamata 'account'Nel database corrente con tre campi. Il primo nome di campo è il nome utente Questa è la chiave principale del. Il secondo nome del campo è il nome E il tipo di dati è Varchar (30). Il terzo nome di campo è indirizzo E il tipo di dati è TESTO. Il quarto nome del campo è e-mail E il tipo di dati è Varchar (50). Il quinto nome del campo è a_status E il tipo di dati è Enum che è stato creato in precedenza.

# Crea account table (
nome utente varchar (20) chiave primaria,
Nome varchar (30),
Testo di indirizzo,
Email Varchar (50),
stato a_status);

Verrà visualizzato il seguente output dopo aver eseguito il comando sopra:

Inserire i dati nella tabella:

Esegui la seguente query Insert per inserire tre record nella tabella dell'account. Tutti i valori del campo Enum sono validi qui:

# Insert in Account (nome utente, nome, indirizzo, e -mail, a_status)
VALORI
("Farhad1278", "Farhad Hossain", "123/7, Dhanmondi Dhaka.',' [email protected] ',' attivo '),
('Nira8956', 'Nira Akter', '10/A, Jigatola Dhaka.',' [email protected] ',' inattivo '),
('Jafar90', 'Jafar Iqbal', '564, Mirpur Dhaka.',' [email protected] ',' in sospeso ');

Verrà visualizzato il seguente output dopo aver eseguito la query sopra:

Eseguire la seguente query di inserimento per inserire un record nel account Tabella ma il valore indicato per il campo Enum non esiste nel tipo ENUM:

# Insert in Account (nome utente, nome, indirizzo, e -mail, a_status)
VALORI
('Rifad76', 'Rifad Hasan', '89, Gabtoli Dhaka.',' [email protected] ',' bloccato ');

Verrà visualizzato il seguente output dopo aver eseguito la query sopra. L'errore si è verificato nell'output per dare un valore enum che non esiste nel tipo enum.

Esegui il seguente comando Seleziona per leggere tutti i record da account tavolo:

# Seleziona * dall'account;

Esegui il seguente comando Seleziona per leggere quei record di account tabella che contengono il 'Attivo' o 'in sospeso' Valore nel campo Enum:

# Seleziona * dall'account dove a_status = 'attivo' o a_status = 'in pend';

Il seguente output apparirà dopo aver eseguito quanto sopra SELEZIONARE interrogazioni:

Cambia il valore enum:

Se viene modificato il valore esistente del tipo enum Enum Valore di campo della tabella dove quello Enum è stato utilizzato sarà anche cambiato.

Eseguire quanto segue Altera comandare a cambiare Enum valore "Attivo" a 'online':

# Altera il tipo di stato rinomina il valore "attivo" in "online";

Esegui il seguente comando Seleziona per verificare i record di account Tabella dopo aver modificato il valore ENUM:

# Seleziona * dall'account;

Verrà visualizzato il seguente output dopo aver eseguito i comandi sopra. C'era un record nella tabella che contiene il valore enum "Attivo'. L'output mostra che il valore "attivo" è stato modificato in "online" dopo aver modificato il valore Enum.

Aggiungi nuovo valore a un tipo di dati ENUM esistente:

Esegui il seguente comando alter per aggiungere un nuovo elemento nel tipo enum denominato stato:

# Altera lo stato del tipo Aggiungi valore 'bloccato';

Esegui la seguente query Seleziona che stampa l'elenco dei tipi ENUM dopo l'aggiunta del nuovo valore:

# Seleziona UnNest (enum_range (null :: status)) come account_status;

Verrà visualizzato il seguente output dopo aver eseguito la query sopra:

Un nuovo valore può essere inserito prima o dopo il valore particolare di un esistente Enum tipo. Esegui il primo comando alter per aggiungere il nuovo valore, 'Bloccato' prima del valore 'inattivo'. Esegui il secondo Altera comando per aggiungere il nuovo valore, 'Bloccato' dopo il valore 'inattivo'.

# Altera lo stato del tipo Aggiungi valore "bloccato" prima di "inattivo";
# Altera lo stato del tipo Aggiungi valore "bloccato" dopo "inattivo";

Elimina il tipo di dati Enum:

È necessario eliminare la tabella in cui viene utilizzato il tipo ENUM prima di rimuovere il tipo ENUM. Esegui il comando seguente per rimuovere la tabella:

# Account tabella drop;

Esegui il comando seguente per rimuovere il tipo ENUM dopo aver rimosso la tabella:

# Drop tipo di stato;

Conclusione:

I modi per creare, aggiornare ed eliminare i tipi di dati Enum in PostgreSQL e gli usi dei tipi di dati ENUM nella tabella PostgreSQL sono stati mostrati in questo tutorial che aiuteranno i nuovi utenti PostgreSQL a conoscere lo scopo di utilizzare correttamente i tipi di dati ENUM correttamente.