Le type de données énuméré ou énuméré est utilisé pour sélectionner une valeur dans la liste de plusieurs valeurs. La valeur particulière sera sélectionnée dans la liste déroulante pour le type de données Enum. Les valeurs d'énumération sont statiques, uniques et sensibles à la casse. Ainsi, les utilisateurs doivent sélectionner n'importe quelle valeur dans les valeurs d'énumération. La valeur d'entrée qui ne correspond à aucune valeur d'énumération ne peut être insérée dans le champ Enum. Ce type de données prend 4 octets à stocker dans le tableau. Le type de données Enum est utile pour stocker ces types de données qui ne sont pas nécessaires pour changer à l'avenir. Il aide à insérer des données valides uniquement. Les utilisations du type de données ENUM dans PostgreSQL ont été montrées dans ce tutoriel.
Conditions préalables:
Vous devez installer la dernière version des packages PostgreSQL sur le système d'exploitation Linux avant d'exécuter les instructions SQL affichées dans ce tutoriel. Exécutez les commandes suivantes pour installer et démarrer le postgresql:
$ sudo apt-get -y installer postgresql postgresql-contrib
$ sudo systemctl start postgresql.service
Exécutez la commande suivante pour vous connecter à PostgreSQL avec l'autorisation racine:
$ sudo -u postgres psqlUtilisations du type de données d'énumération:
Avant de créer une table avec le type de données booléen, vous devez créer une base de données PostgreSQL. Donc, exécutez la commande suivante pour créer une base de données nommée 'testdb':
# Créer une base de données testdb;La sortie suivante apparaîtra après avoir créé la base de données:
Créer et lire le type d'énumération:
Exécutez la commande Créer suivante pour créer un type d'énumération nommé account_status avec trois valeurs:
# Créer Type Account_Status en tant que enum («en attente», «inactif», «actif»);Exécutez la commande SELECT suivante pour imprimer les valeurs du type d'énumération qui a été créée auparavant:
# SELECT UNNEST (enum_range (null :: account_status)) comme account_status;La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus:
Renommez le type d'énumération:
Exécutez la commande suivante pour modifier le nom du type d'énumération à partir de 'account_status' à 'statut':
# Alter type compte_status renomment au statut;Créez un tableau à l'aide du type de données Enum:
Créer une table nommée 'compte'Dans la base de données actuelle avec trois champs. Le premier nom de champ est le nom d'utilisateur c'est la clé principale du. Le deuxième nom de champ est le nom et le type de données est Varchar (30). Le troisième nom de champ est adresse et le type de données est TEXTE. Le quatrième nom de champ est e-mail et le type de données est Varchar (50). Le cinquième nom de champ est a_status et le type de données est Énumérer qui a été créé plus tôt.
# Créer un compte de table (La sortie suivante apparaîtra après avoir exécuté la commande ci-dessus:
Insérer des données dans le tableau:
Exécutez la requête d'insertion suivante pour insérer trois enregistrements dans le tableau du compte. Toutes les valeurs du champ Enum sont valides ici:
# Insérer en compte (nom d'utilisateur, nom, adresse, e-mail, a_status)La sortie suivante apparaîtra après avoir exécuté la requête ci-dessus:
Exécutez la requête d'insertion suivante pour insérer un enregistrement dans le compte Tableau mais la valeur donnée pour le champ Enum n'existe pas dans le type d'énumération:
# Insérer en compte (nom d'utilisateur, nom, adresse, e-mail, a_status)La sortie suivante apparaîtra après avoir exécuté la requête ci-dessus. L'erreur s'est produite dans la sortie pour donner une valeur d'énumération qui n'existe pas dans le type d'énumération.
Exécutez la commande SELECT suivante pour lire tous les enregistrements dans le compte tableau:
# Select * FROM COUTE;Exécutez la commande SELECT suivante pour lire ces enregistrements du compte table qui contient le «Actif» ou «en attente» Valeur dans le champ Enum:
# SELECT * FROM COMPTE WHERE A_STATUS = 'ACTIVE' ou A_STATUS = 'En attente';La sortie suivante apparaîtra après avoir exécuté ce qui précède SÉLECTIONNER Requêtes:
Modifier la valeur de l'énumération:
Si une valeur existante du type d'énumération est modifiée, le Énumérer Valeur de champ du tableau où Énumérer a été utilisé sera également modifié.
Exécutez ce qui suit MODIFIER commande de changer Énumérer valeur «Actif» vers «en ligne»:
# Alter le type statut Renommer la valeur «active» vers «en ligne»;Exécutez la commande SELECT suivante pour vérifier les enregistrements du compte table après avoir modifié la valeur de l'énumération:
# Select * FROM COUTE;La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus. Il y avait un enregistrement dans le tableau qui contient la valeur d'énumération, 'Actif'. La sortie montre que la valeur «active» a été changée en `` en ligne '' après avoir modifié la valeur d'énumération.
Ajouter une nouvelle valeur à un type de données ENUM existant:
Exécutez la commande alter suivante pour ajouter un nouvel élément dans le type d'énumération nommé statut:
# Alter le type statut ajouter la valeur «bloquée»;Exécutez la requête de sélection suivante qui imprimera la liste des types d'énumération après avoir ajouté la nouvelle valeur:
# SELECT UNNEST (enum_range (null :: status)) comme account_status;La sortie suivante apparaîtra après avoir exécuté la requête ci-dessus:
Une nouvelle valeur peut être insérée avant ou après la valeur particulière d'un Énumérer taper. Exécutez la première commande alter pour ajouter la nouvelle valeur, «Bloqué» avant la valeur «inactive». Courir le second MODIFIER commande pour ajouter la nouvelle valeur, «Bloqué» après la valeur «inactive».
# Alter le type statut ajouter la valeur «bloquée» avant «inactive»;Supprimer le type de données ENUM:
Vous devez supprimer le tableau où le type d'énumération est utilisé avant de retirer le type d'énumération. Exécutez la commande suivante pour supprimer le tableau:
# COUNT DE TABLE DE DROP;Exécutez la commande suivante pour supprimer le type d'énumération après avoir retiré la table:
# Drop Type Status;Conclusion:
Les moyens de créer, de mettre à jour et de supprimer les types de données ENUM dans PostgreSQL et les utilisations des types de données ENUM dans la table PostgreSQL ont été montrées dans ce didacticiel qui aidera les nouveaux utilisateurs de PostgreSQL à connaître correctement les types de données ENUM.