Enum Type
PostgreSQL 🟢 JuniorDé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
Termes liés
En entretien
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.
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