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

44.13. pg_constraint

Le catalogue pg_constraint stocke les vérifications, clés primaires, clés uniques et étrangères des tables. (Les contraintes de colonnes ne sont pas traitées de manière particulière. Elles sont équivalentes à des contraintes de tables.) Les contraintes NOT NULL sont représentées dans le catalogue pg_attribute.

Les contraintes de vérification de domaine sont également stockées dans ce catalogue.

Tableau 44.13. Colonnes de pg_constraint

Nom Type Références Description
conname name   Nom de la contrainte (pas nécessairement unique !)
connamespace oid pg_namespace.oid OID du namespace qui contient la contrainte.
contype char   c = contrainte de vérification, f = contrainte de clé étrangère, p = contrainte de clé primaire, u = contrainte d'unicité
condeferrable bool   La contrainte peut-elle être retardée (deferable) ?
condeferred bool   La contrainte est-elle retardée par défaut ?
conrelid oid pg_class.oid Table à laquelle appartient la contrainte ; 0 si ce n'est pas une contrainte de table.
contypid oid pg_type.oid Domaine auquel appartient la contrainte ; 0 si ce n'est pas une contrainte de domaine.
confrelid oid pg_class.oid Si c'est une clé étrangère, la table référencée ; sinon 0
confupdtype char   Code de l'action de mise à jour de la clé étrangère
confdeltype char   Code de l'action de suppression de clé étrangère
confmatchtype char   Type de concordance de la clé étrangère
conkey int2[] pg_attribute.attnum S'il s'agit d'une contrainte de table, liste des colonnes contraintes
confkey int2[] pg_attribute.attnum S'il s'agit d'une clé étrangère, liste des colonnes référencées
conpfeqop oid[] pg_operator.oid S'il s'agit d'une clé étrangère, liste des opérateurs d'égalité pour les comparaisons clé primaire/clé étrangère
conppeqop oid[] pg_operator.oid S'il s'agit d'une clé étrangère, liste des opérateurs d'égalité pour les comparaisons clé primaire/clé primaire
conffeqop oid[] pg_operator.oid S'il s'agit d'une clé étrangère, liste des opérateurs d'égalité pour les comparaisons clé étrangère/clé étrangère
conbin text   S'il s'agit d'une contrainte de vérification, représentation interne de l'expression
consrc text   S'il s'agit d'une contrainte de vérification, représentation compréhensible de l'expression

[Note]

Note

consrc n'est pas actualisé lors de la modification d'objets référencés ; par exemple, il ne piste pas les renommages de colonnes. Plutôt que se fier à ce champ, il est préférable d'utiliser pg_get_constraintdef() pour extraire la définition d'une contrainte de vérification.

[Note]

Note

pg_class.relchecks doit accepter le même nombre de contraintes de vérification pour chaque relation.