PostgreSQL Enzerierter Datentyp

PostgreSQL Enzerierter Datentyp

Der auflistierende oder umzählige Datentyp wird verwendet, um einen Wert aus der Liste mehrerer Werte auszuwählen. Der bestimmte Wert wird aus der Dropdown-Liste für den Enum-Datentyp ausgewählt. Die Auflaufwerte sind statisch, einzigartig und fälschlichem sensibel. Die Benutzer müssen also einen Wert aus den Enum -Werten auswählen. Der Eingangswert, der nicht mit einem Enumswert übereinstimmt, kann nicht in das Feld Enum eingefügt werden. Dieser Datentyp benötigt 4 Bytes, um in der Tabelle zu speichern. Der Enum -Datentyp ist nützlich, um diese Arten von Daten zu speichern, die in Zukunft nicht geändert werden müssen. Es hilft nur, gültige Daten einzufügen. Die Verwendungen des Enum -Datentyps in PostgreSQL wurden in diesem Tutorial gezeigt.

Voraussetzungen:

Sie müssen die neueste Version von PostgreSQL -Paketen auf dem Linux -Betriebssystem installieren, bevor Sie die in diesem Tutorial gezeigten SQL -Anweisungen ausführen. Führen Sie die folgenden Befehle aus, um die Postgresql zu installieren und zu starten:

$ sudo apt-get -y install postgresql postgresql-contrib
$ sudo systemctl starten postgresql.Service

Führen Sie den folgenden Befehl aus, um sich mit Root -Erlaubnis bei PostgreSQL anzumelden:

$ sudo -u postgres psql

Verwendungszwecke des Enum -Datentyps:

Bevor Sie eine Tabelle mit dem Booleschen Datentyp erstellen, müssen Sie eine PostgreSQL -Datenbank erstellen. Führen Sie also den folgenden Befehl aus, um eine Datenbank mit dem Namen 'zu erstellentestdb':

# Datenbank testdb erstellen;

Nach dem Erstellen der Datenbank wird die folgende Ausgabe angezeigt:

Erstellen und lesen Sie den Enum -Typ:

Führen Sie den folgenden Befehl erstellen aus, um einen enum -Typ mit dem Namen Account_status mit drei Werten zu erstellen:

# Type account_status als enum erstellen ('ausstehend', 'inaktiv', 'aktiv');

Führen Sie den folgenden SELECT -Befehl aus, um die Werte des zuvor erstellten Enum -Typs zu drucken:

# Wählen Sie Unnest (enum_range (null :: account_status)) als Account_status;

Nach der Ausführung der obigen Befehle wird die folgende Ausgabe angezeigt:

Benennen Sie den Enum -Typ um:

Führen Sie den folgenden Befehl aus, um den Namen des Enum -Typs aus zu ändern 'Account_status' zu 'Status':

# TYPE ACTORACT_STATUS ALTER ALTER AUSSEN

Erstellen Sie eine Tabelle mit dem Enum -Datentyp:

Erstellen Sie eine Tabelle mit dem Namen 'Konto'In der aktuellen Datenbank mit drei Feldern. Der erste Feldname ist der Nutzername Das ist der Hauptschlüssel der. Der zweite Feldname ist der Name und der Datentyp ist Varchar (30). Der dritte Feldname ist Adresse und der Datentyp ist TEXT. Der vierte Feldname ist Email und der Datentyp ist Varchar (50). Der fünfte Feldname lautet a_status und der Datentyp ist Aufreum das wurde früher erstellt.

# Tabellenkonto erstellen (
Benutzername VARCHAR (20) Primärschlüssel,
Nennen Sie Varchar (30),
Adresstext,
E -Mail Varchar (50),
a_status Status);

Nach der Ausführung des obigen Befehls wird die folgende Ausgabe angezeigt:

Daten in die Tabelle einfügen:

Führen Sie die folgende Abfrage ein, um drei Datensätze in die Kontentabelle einzulegen. Alle Werte des Feldfelds sind hier gültig:

# Berücksichtigung (Benutzername, Name, Adresse, E -Mail, a_status)
WERTE
('Farhad1278', 'Farhad Hossain', '123/7, Dhanmondi Dhaka.',' [email protected] ',' aktiv '),
('Nira8956', 'Nira Akter', '10/A, Jigatola Dhaka.',' [email protected] ',' inaktiv '),
('Jafar90,' Jafar Iqbal ',' 564, Mirpur Dhaka.',' [email protected] ',' ausstehend ');

Die folgende Ausgabe erscheint nach Ausführung der obigen Abfrage:

Führen Sie die folgende Einfügungsanfrage aus, um einen Datensatz in den Einfügen in die Konto Tabelle, aber der Wert für das Feld Enum ist im Enum -Typ nicht vorhanden:

# Berücksichtigung (Benutzername, Name, Adresse, E -Mail, a_status)
WERTE
('Rifad76', 'Rifad Hasan', '89, Gabtoli Dhaka.',' [email protected] ',' blockiert ');

Nach der Ausführung der obigen Abfrage wird die folgende Ausgabe angezeigt. Der Fehler ist in der Ausgabe aufgetreten.

Führen Sie den folgenden SELECT -Befehl aus, um alle Datensätze aus dem zu lesen Konto Tisch:

# Aus dem Konto auswählen;

Führen Sie den folgenden SELECT -Befehl aus, um diese Datensätze des Konto Tabelle, die die enthalten "Aktiv" oder "ausstehend" Wert im Feld Enum:

# Auswählen * aus dem Konto, wobei a_status = 'active' oder a_status = 'anhängig';

Die folgende Ausgabe erscheint nach der Ausführung der oben genannten WÄHLEN Abfragen:

Ändern Sie den Umlaufwert:

Wenn ein vorhandener Wert des Enum -Typs geändert wird, dann die Aufreum Feldwert der Tabelle, wo das ist Aufreum wurde auch verwendet, wird auch geändert.

Leiten Sie Folgendes aus ÄNDERN Befehl zu ändern Aufreum Wert "Aktiv" zu "Online":

# TYPENTATUTEN ALTER -VERWEISUNG VERWENDUNG "Active" in "Online";

Führen Sie den folgenden Befehl aus, um die Datensätze der Datensätze zu überprüfen Konto Tabelle nach Änderung des Enumswerts:

# Aus dem Konto auswählen;

Nach der Ausführung der obigen Befehle wird die folgende Ausgabe angezeigt. Es gab einen Datensatz in der Tabelle, der den Umlaufwert enthält. 'Aktiv''. Die Ausgabe zeigt, dass der "aktive" Wert nach Änderung des Enumswerts in "Online" geändert wurde.

Fügen Sie einem vorhandenen Enum -Datentyp einen neuen Wert hinzu:

Fügen Sie den folgenden Änderungsbefehl aus, um einen neuen Element in den genannten Enum -Typ hinzuzufügen Status:

# Typenstatusstatus Add Value 'blockiert';

Führen Sie die folgende Auswahlabfrage aus, mit der die Liste der Enumtypen nach dem Hinzufügen des neuen Wertes gedruckt wird:

# Wählen Sie Unnest (enum_range (null :: Status)) als Account_status;

Die folgende Ausgabe erscheint nach Ausführung der obigen Abfrage:

Ein neuer Wert kann vor oder nach dem jeweiligen Wert eines vorhandenen eingefügt werden Aufreum Typ. Führen Sie den ersten Ändern des Änderns aus, um den neuen Wert hinzuzufügen, "Blockiert" vor dem Wert "inaktiv". Laufen Sie die zweite ÄNDERN Befehl zum Hinzufügen des neuen Wertes, "Blockiert" nach dem Wert "inaktiv".

# Typenstatusstatus -Wert 'blockiert' vor 'inaktiv' blockiert;
# Typenstatusstatus Add Value 'blockiert' nach 'inaktiv';

Enum -Datentyp löschen:

Sie müssen die Tabelle löschen, in der der Enum -Typ verwendet wird, bevor Sie den Enum -Typ entfernen. Führen Sie den folgenden Befehl aus, um die Tabelle zu entfernen:

# Drop -Table -Konto;

Führen Sie den folgenden Befehl aus, um den Enum -Typ zu entfernen, nachdem Sie die Tabelle entfernen:

# Droptypstatus;

Abschluss:

Die Möglichkeiten zum Erstellen, Aktualisieren und Löschen von Enum -Datentypen in PostgreSQL sowie die Verwendung von Enum -Datentypen in der PostgreSQL -Tabelle wurden in diesem Tutorial gezeigt.