Ansicht CONSTRAINT_COLUMN_USAGE
Die Ansicht CONSTRAINT_COLUMN_USAGE enthält alle Spalten, die von
Einschränkungen verwendet werden.
Für PRIMARY KEY-Einschränkungen sind dies die Spalten aus der Ansicht KEY_COLUMN_USAGE. Für FOREIGN KEY-Einschränkungen sind dies die Spalten der referenzierten Tabellen.
Erforderliche Rollen
Um die Berechtigungen zu erhalten, die
Sie zum Abfragen der Ansicht INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE benötigen,
müssen Sie Ihren Administrator bitten, Ihnen die
IAM-Rolle BigQuery-Datenbearbeiter (roles/bigquery.dataEditor) für Ihr Projekt zu gewähren.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Abfragen der Ansicht INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Zum Abfragen der Ansicht INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE sind die folgenden Berechtigungen erforderlich:
-
Definitionen von Primär- und Fremdschlüsseln ansehen:
bigquery.tables.get -
Tabelleninformationsschemas ansehen:
bigquery.tables.list
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.
Schema
Die Ansicht INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE hat das folgende Schema:
| Spaltenname | Datentyp | Wert |
|---|---|---|
|
|
Der Name des Projekts, zu dem das Dataset gehört. |
|
|
Der Name des Datasets, das die Tabelle enthält. Wird auch als datasetId bezeichnet. |
|
|
Der Name der Tabelle. Wird auch als das
tableId bezeichnet. |
|
|
Der Name der Spalte, |
|
|
Der Name des Einschränkungsprojekts. |
|
|
Der Name des Einschränkungs-Datasets. |
|
|
Der Name der Einschränkung. Es kann der Name des Primärschlüssels sein, wenn die Spalte vom Primärschlüssel verwendet wird, oder der Name des Fremdschlüssels sein, wenn die Spalte von einem Fremdschlüssel verwendet wird. |
Aus Stabilitätsgründen empfehlen wir, Spalten in Ihren Informationsschemaabfragen explizit aufzulisten, anstatt ein Platzhalterzeichen (SELECT *) zu verwenden. Wenn Sie Spalten explizit auflisten, wird verhindert, dass Abfragen fehlschlagen, wenn sich das zugrunde liegende Schema ändert.
Bereich und Syntax
Für Abfragen dieser Ansicht muss ein Dataset-Qualifizierer verwendet werden. Für Abfragen mit einem Dataset-Qualifier benötigen Sie Berechtigungen für das Dataset. Weitere Informationen finden Sie unter Syntax. In der folgenden Tabelle werden die Regions- und Ressourcenbereiche für diese Ansicht gezeigt:
| Ansichtsname | Ressourcenbereich | Regionsbereich |
|---|---|---|
[PROJECT_ID.]DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE; |
Dataset-Ebene | Dataset-Speicherort |
-
Optional:
PROJECT_ID: die ID Ihres Google Cloud Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet.
Beispiele
Die folgende Abfrage zeigt die Einschränkungen für eine einzelne Tabelle in einem Dataset:
SELECT * FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE WHERE table_name = TABLE;
Ersetzen Sie dabei Folgendes:
PROJECT_ID: Optional. Der Name Ihres Cloud-Projekts. Wenn nicht angegeben, verwendet dieser Befehl das Standardprojekt.DATASET: der Name Ihres DatasetsTABLE: der Name der Tabelle
Umgekehrt werden in der folgenden Abfrage die Einschränkungen für alle Tabellen in einem einzelnen Dataset angezeigt.
SELECT * FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE;
Bei vorhandenen Einschränkungen sehen die Abfrageergebnisse etwa so aus:
+-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+ | 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 | +-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+
Wenn für die Tabelle oder das Dataset keine Einschränkungen gelten, sehen die Abfrageergebnisse so aus:
+-----------------------------+ | There is no data to display | +-----------------------------+