PostgreSQLLa base de données la plus sophistiquée au monde.

11.5. Index uniques

Les index peuvent aussi être utilisés pour garantir l'unicité des valeurs d'une colonne, ou l'unicité des valeurs combinées de plusieurs colonnes.

CREATE UNIQUE INDEX nom ON table (colonne [, ...]);

À ce jour, seuls les index B-trees peuvent être déclarés uniques.

Lorsqu'un index est déclaré unique, des lignes différentes d'une table ne pourront avoir une valeur égale. Les valeurs NULL ne sont pas considérées comme égales. Un index unique multicolonnes ne rejette que les cas où toutes les colonnes indexées sont égales dans deux lignes.

PostgreSQL™ crée automatiquement un index unique quand une contrainte unique ou une clé primaire sont définies sur une table. L'index porte sur les colonnes qui composent la clé primaire ou la contrainte d'unicité (il s'agit d'un index multicolonnes, si c'est approprié). Cet index EST le mécanisme qui vérifie la contrainte.

[Note]

Note

La méthode la plus appropriée pour ajouter une contrainte à une table est ALTER TABLE ... ADD CONSTRAINT. L'utilisation des index pour vérifier les contraintes uniques doit être considérée comme un détail d'implémentation qui ne doit pas être utilisé directement. Il faut par contre savoir qu'il n'est pas nécessaire de créer manuellement un index sur les colonnes uniques. Cela dupliquerait l'index créé automatiquement.