Vue REFERENTIAL_CONSTRAINTS

Cette vue Information Schema affiche une ligne pour chaque contrainte FOREIGN KEY définie pour les tables dans la base de données spécifiée (ou actuelle).

Les contraintes FOREIGN KEY sont utilisées pour renforcer l’intégrité référentielle. Pour plus d’informations, voir Contraintes et Contraintes d’intégrité référentielle.

Pour renvoyer des informations sur d’autres types de contraintes (ainsi que les contraintes FOREIGN KEY), interrogez les Vue TABLE_CONSTRAINTS.

Voir aussi :

Vue TABLE_CONSTRAINTS

Colonnes

Nom de la colonne

Type de données

Description

CONSTRAINT_CATALOG

TEXT

Base de données à laquelle la contrainte appartient

CONSTRAINT_SCHEMA

TEXT

Schéma auquel la contrainte appartient

CONSTRAINT_NAME

TEXT

Nom de la contrainte

UNIQUE_CONSTRAINT_CATALOG

TEXT

Base de données de la contrainte unique référencée par la contrainte courante

UNIQUE_CONSTRAINT_SCHEMA

TEXT

Schéma de la contrainte unique référencée par la contrainte courante

UNIQUE_CONSTRAINT_NAME

TEXT

Nom de la contrainte unique référencée par la contrainte courante

MATCH_OPTION

TEXT

Option de correspondance pour la contrainte

UPDATE_RULE

TEXT

Règle de mise à jour pour la contrainte courante

DELETE_RULE

TEXT

Règle de suppression pour la contrainte courante

COMMENT

TEXT

Commentaire pour cette contrainte

CREATED

TIMESTAMP_LTZ

Heure de création de la contrainte

LAST_ALTERED

TIMESTAMP_LTZ

Date et heure de la dernière modification de l’objet par un DML, un DDL ou une opération de métadonnées en arrière-plan. Consultez Notes sur l’utilisation.

Notes sur l’utilisation

  • La vue n’affiche que les objets pour lesquels le rôle actuel de la session s’est vu accorder des privilèges d’accès.

  • La colonne LAST_ALTERED est mise à jour lorsque les opérations suivantes sont effectuées sur un objet :

    • DDL opérations.

    • DML opérations (pour les tables uniquement). Cette colonne est mise à jour même si aucune ligne n’est affectée par l’instruction DML.

    • Opérations de maintenance des métadonnées en arrière-plan effectuées par Snowflake.

Exemples

Renvoyez des informations sur toutes les contraintes FOREIGN KEY dans la base de données actuelle.

SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;
Copy
+--------------------+-------------------+-----------------------------------------------------+---------------------------+--------------------------+-----------------------------------------------------+--------------+-------------+-------------+---------+-------------------------------+-------------------------------+
| CONSTRAINT_CATALOG | CONSTRAINT_SCHEMA | CONSTRAINT_NAME                                     | UNIQUE_CONSTRAINT_CATALOG | UNIQUE_CONSTRAINT_SCHEMA | UNIQUE_CONSTRAINT_NAME                              | MATCH_OPTION | UPDATE_RULE | DELETE_RULE | COMMENT | CREATED                       | LAST_ALTERED                  |
|--------------------+-------------------+-----------------------------------------------------+---------------------------+--------------------------+-----------------------------------------------------+--------------+-------------+-------------+---------+-------------------------------+-------------------------------|
| HTABLES_DB         | HTABLES_SCHEMA    | SYS_CONSTRAINT_51118aaf-1ee6-4548-bc9a-f87e65d92528 | HTABLES_DB                | HTABLES_SCHEMA           | SYS_CONSTRAINT_aad16788-491a-4e68-b0e3-30d48a33a1c1 | FULL         | NO ACTION   | NO ACTION   | NULL    | 2024-09-19 13:51:37.355 -0700 | 2024-09-19 13:51:37.608 -0700 |
| HTABLES_DB         | HTABLES_SCHEMA    | SYS_CONSTRAINT_c97bfe9b-6098-4b8a-b796-e341071db72a | HTABLES_DB                | HTABLES_SCHEMA           | SYS_CONSTRAINT_0bd41d0f-11f7-4366-82a3-f03f31fcce7e | FULL         | NO ACTION   | NO ACTION   | NULL    | 2024-05-28 18:21:43.899 -0700 | 2024-05-28 18:21:44.268 -0700 |
+--------------------+-------------------+-----------------------------------------------------+---------------------------+--------------------------+-----------------------------------------------------+--------------+-------------+-------------+---------+-------------------------------+-------------------------------+

Joignez cette vue aux Vue TABLE_CONSTRAINTS pour obtenir les noms des tables de référencement qui ont des contraintes FOREIGN KEY :

SELECT tc.constraint_catalog, tc.constraint_schema, tc.constraint_name, tc.table_name, tc.constraint_type, tc.enforced
  FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
    JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc ON tc.constraint_name=rc.constraint_name;
Copy
+--------------------+-------------------+-----------------------------------------------------+------------+-----------------+----------+
| CONSTRAINT_CATALOG | CONSTRAINT_SCHEMA | CONSTRAINT_NAME                                     | TABLE_NAME | CONSTRAINT_TYPE | ENFORCED |
|--------------------+-------------------+-----------------------------------------------------+------------+-----------------+----------|
| HTABLES_DB         | HTABLES_SCHEMA    | SYS_CONSTRAINT_51118aaf-1ee6-4548-bc9a-f87e65d92528 | HTFK       | FOREIGN KEY     | YES      |
| HTABLES_DB         | HTABLES_SCHEMA    | SYS_CONSTRAINT_c97bfe9b-6098-4b8a-b796-e341071db72a | HT619      | FOREIGN KEY     | YES      |
+--------------------+-------------------+-----------------------------------------------------+------------+-----------------+----------+