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

TABLE_CATALOG

STRING

Nom du projet qui contient l'ensemble de données.

TABLE_SCHEMA

STRING

Nom de l'ensemble de données contenant la table, également appelé datasetId.

TABLE_NAME

STRING

Nom de la table, également appelé tableId.

COLUMN_NAME

STRING

Nom de la colonne.

CONSTRAINT_CATALOG

STRING

Nom de projet de la contrainte.

CONSTRAINT_SCHEMA

STRING

Nom de l'ensemble de données de la contrainte.

CONSTRAINT_NAME

STRING

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
Remplacez les éléments suivants :

  • 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 |
+-----------------------------+