

pg_constraint #
   Le catalogue pg_constraint stocke les vérifications,
   clés primaires, clés uniques, étrangères et d'exclusion 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,
   pas ici.
  
   Les triggers de contraintes définies par des utilisateurs (créés avec
    CREATE CONSTRAINT
   TRIGGER) ont aussi une entrée dans cette table.
  
Les contraintes de vérification de domaine sont également stockées dans ce catalogue.
Tableau 53.13. Colonnes de pg_constraint
| Type Description | 
|---|
| 
         Identifiant de ligne | 
| 
         Nom de la contrainte (pas nécessairement unique !) | 
| 
         OID du namespace qui contient la contrainte. | 
| 
         
         | 
| 
         La contrainte peut-elle être retardée (deferable) ? | 
| 
         La contrainte est-elle retardée par défaut ? | 
| 
         La contrainte a-t-elle été validée ? actuellement, peut seulement valoir false pour les clés étrangères et les contraintes CHECK | 
| 
         Table à laquelle appartient la contrainte ; zéro si ce n'est pas une contrainte de table. | 
| 
         Domaine auquel appartient la contrainte ; zéro si ce n'est pas une contrainte de domaine. | 
| 
         L'index qui force cette contrainte (unique, clé primaire, clé étrangère, d'exclusion) ; sinon zéro | 
| 
         La contrainte correspondante dans la table partitionnée parent si c'est une contrainte dans une partition ; sinon zéro | 
| 
         Si c'est une clé étrangère, la table référencée ; sinon zéro | 
| 
         
        Code de l'action de mise à jour de la clé étrangère :
         | 
| 
         
        Code de l'action de suppression de clé étrangère :
         | 
| 
         
        Type de concordance de la clé étrangère :
         | 
| 
         Cette contrainte est définie localement dans la relation. Notez qu'une contrainte peut être définie localement et héritée simultanément | 
| 
         Le nombre d'ancêtres d'héritage directs que cette contraite possède. Une contrainte avec un nombre non nul d'ancêtres ne peut être ni supprimée ni renommée. | 
| 
         Cette contrainte est définie localement pour la relation. C'est une contrainte non héritable. | 
| 
         S'il s'agit d'une contrainte de table (incluant les clés étrangères mais pas les triggers de contraintes), liste des colonnes contraintes | 
| 
         S'il s'agit d'une clé étrangère, liste des colonnes référencées | 
| 
         S'il s'agit d'une clé étrangère, liste des opérateurs d'égalité pour les comparaisons clé primaire/clé étrangère | 
| 
         S'il s'agit d'une clé étrangère, liste des opérateurs d'égalité pour les comparaisons clé primaire/clé primaire | 
| 
         S'il s'agit d'une clé étrangère, liste des opérateurs d'égalité pour les comparaisons clé étrangère/clé étrangère | 
| 
        
       S'il s'agit d'une clé étrangère avec une action  | 
| 
         Si une contrainte d'exclusion, liste les opérateurs d'exclusion par colonne | 
| 
         
        Si c'est une contrainte CHECK, représentation interne de l'expression.
        (Il est recommandé d'utiliser  | 
   Dans le cas d'une contrainte d'exclusion, conkey
   est seulement utile pour les éléments contraints qui sont de simples
   références de colonnes. Dans les autres cas, un zéro apparaît dans
   conkey et l'index associé doit être consulté
   pour découvrir l'expression contrainte. (du coup,
   conkey a le même contenu que
   pg_index.indkey
   pour l'index.)
  
    pg_class.relchecks doit accepter le même nombre de
    contraintes de vérification pour chaque relation.