Vue CONSTRAINT_COLUMN_USAGE
La vue CONSTRAINT_COLUMN_USAGE
contient toutes les colonnes utilisées par les contraintes.
Pour les contraintes PRIMARY KEY
, il s'agit des colonnes de la vue KEY_COLUMN_USAGE
. Pour les contraintes FOREIGN KEY
, il s'agit des colonnes des tables référencées.
Schéma
La vue INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
présente le schéma suivant :
Nom de la colonne | Type de données | Valeur |
---|---|---|
|
|
Nom du projet qui contient l'ensemble de données. |
|
|
Nom de l'ensemble de données contenant la table, également appelé datasetId . |
|
|
Nom de la table, également appelé tableId . |
|
|
Nom de la colonne. |
|
|
Nom de projet de la contrainte. |
|
|
Nom de l'ensemble de données de la contrainte. |
|
|
Nom de la contrainte. Il peut s'agir du nom de la clé primaire si la colonne est utilisée par la clé primaire, ou du nom de la clé étrangère si la colonne est utilisée par une clé étrangère. |
Champ d'application et syntaxe
Les requêtes exécutées sur cette vue doivent inclure un qualificatif d'ensemble de données. Pour les requêtes avec un qualificatif d'ensemble de données, vous devez disposer d'autorisations pour l'ensemble de données. Pour en savoir plus, consultez la section Syntaxe. Le tableau suivant explique le champ d'application des régions et des ressources pour cette vue :
Nom de la vue | Champ d'application de la ressource | Champ d'application de la région |
---|---|---|
[PROJECT_ID.]DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE; |
Niveau de l'ensemble de données | Emplacement d'un ensemble de données |
- Facultatif :
PROJECT_ID
: ID de votre projet Google Cloud. Si non spécifié, le projet par défaut est utilisé.
Exemples
La requête suivante montre les contraintes pour une seule table d'un ensemble de données :
SELECT * FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE WHERE table_name = TABLE;
Remplacez les éléments suivants :
PROJECT_ID
: facultatif. Nom de votre projet Cloud. Si aucune valeur n'est spécifiée, cette commande utilise le projet par défaut.DATASET
: nom de votre ensemble de données.TABLE
: nom de la table.
À l'inverse, la requête suivante affiche les contraintes pour toutes les tables d'un même ensemble de données.
SELECT * FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE;
Avec des contraintes existantes, les résultats de la requête ressemblent à ce qui suit :
+-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+ | row | table_catalog | table_schema | table_name | column_name | constraint_catalog | constraint_schema | constraint_name | +-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+ | 1 | myConstraintCatalog | myDataset | orders | o_okey | myConstraintCatalog | myDataset | orders.pk$ | | 2 | myConstraintCatalog | myDataset | orders | o_okey | myConstraintCatalog | myDataset | lineitem.lineitem_order | +-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+
Si la table ou l'ensemble de données ne présente aucune contrainte, les résultats de la requête se présentent comme suit :
+-----------------------------+ | There is no data to display | +-----------------------------+