Vue TABLE_CONSTRAINTS
La vue TABLE_CONSTRAINTS
contient les relations de clé primaire et étrangère dans un ensemble de données BigQuery.
Autorisations requises
Vous avez besoin des autorisations IAM (Identity and Access Management) suivantes :
bigquery.tables.get
pour afficher les définitions de clé primaire et étrangère.bigquery.tables.list
pour afficher les schémas d'informations des tables.
Chacun des rôles prédéfinis suivants dispose des autorisations nécessaires pour effectuer les workflows détaillés dans ce document :
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.
Schéma
La vue INFORMATION_SCHEMA.TABLE_CONSTRAINTS
présente le schéma suivant :
Nom de la colonne | Type | Signification |
---|---|---|
|
|
Nom de projet de la contrainte. |
|
|
Nom de l'ensemble de données de la contrainte. |
|
|
Nom de la contrainte. |
|
|
Nom du projet de la table avec des contraintes. |
|
|
Nom de l'ensemble de données de la table avec des contraintes. |
|
|
Nom de la table avec des contraintes. |
|
|
PRIMARY KEY ou
FOREIGN KEY . |
|
|
YES ou NO selon qu'une contrainte est différable ou non. Seule l'option NO est acceptée. |
|
|
Seule l'option NO est acceptée. |
|
|
YES ou NO selon que la contrainte est appliquée ou non. Seule la fonctionnalité NO est prise en charge. |
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.TABLE_CONSTRAINTS; |
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.TABLE_CONSTRAINTS 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.TABLE_CONSTRAINTS;
Avec des contraintes existantes, les résultats de la requête ressemblent à ce qui suit :
+-----+---------------------+-------------------+-----------------------+---------------------+--------------+------------+-----------------+---------------+--------------------+----------+ | Row | constraint_catalog | constraint_schema | constraint_name | table_catalog | table_schema | table_name | constraint_type | is_deferrable | initially_deferred | enforced | +-----+---------------------+-------------------+-----------------------+---------------------+--------------+------------+-----------------+---------------+--------------------+----------+ | 1 | myConstraintCatalog | myDataset | orders.pk$ | myConstraintCatalog | myDataset | orders | PRIMARY KEY | NO | NO | NO | | 2 | myConstraintCatalog | myDataset | orders.order_customer | myConstraintCatalog | myDataset | orders | FOREIGN KEY | NO | NO | NO | +-----+---------------------+-------------------+-----------------------+---------------------+--------------+------------+-----------------+---------------+--------------------+----------+
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 | +-----------------------------+