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 :
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;
+--------------------+-------------------+-----------------------------------------------------+---------------------------+--------------------------+-----------------------------------------------------+--------------+-------------+-------------+---------+-------------------------------+-------------------------------+
| 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;
+--------------------+-------------------+-----------------------------------------------------+------------+-----------------+----------+
| 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 |
+--------------------+-------------------+-----------------------------------------------------+------------+-----------------+----------+