Enum Type

PostgreSQL 🟢 Junior

Définition

Type personnalise définissant un ensemble fixe de valeurs autorisées. Plus performant et type-safe qu'une contrainte CHECK sur un VARCHAR.

Analogie

Un menu déroulant avec des options figées : tu ne peux choisir que ce qui est propose.

Exemple de code

CREATE TYPE mood AS ENUM (
  'happy', 'sad', 'neutral'
);
CREATE TABLE entries (
  id SERIAL PRIMARY KEY,
  feeling mood NOT NULL
);

Cas d'usage

Définir des statuts, roles ou catégories avec un nombre fini de valeurs connues a l'avance.

Anti-pattern

Créer un enum pour des valeurs qui changent souvent, car ajouter/supprimer des valeurs est lourd.

Termes liés

#sgbd#interview#database#postgresql

En entretien

  1. Explique-moi ce qu'est un type Enum et son avantage par rapport à une contrainte CHECK sur un VARCHAR.

    Un Enum est un type personnalisé définissant un ensemble fixe de valeurs autorisées, comme un menu déroulant avec des options figées. Il est plus performant et type-safe qu'une contrainte CHECK sur un VARCHAR.

  2. Quand éviter de créer un Enum ?

    Pour des valeurs qui changent souvent, car ajouter ou supprimer des valeurs dans un enum est une opération lourde. Dans ce cas une table de référence classique reste plus flexible.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre