Ansicht TABLE_CONSTRAINTS

Die Ansicht TABLE_CONSTRAINTS enthält die Primär- und Fremdschlüsselbeziehungen in einem BigQuery-Dataset.

Erforderliche Berechtigungen

Sie benötigen die folgenden IAM-Berechtigungen (Identity and Access Management):

  • bigquery.tables.get zum Aufrufen von Definitionen des primären und Fremdschlüssels.
  • bigquery.tables.list zum Aufrufen von Tabelleninformationsschemas

Jede der folgenden vordefinierten Rollen hat die erforderlichen Berechtigungen zum Ausführen der in diesem Dokument beschriebenen Workflows:

  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.admin

Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.

Schema

Die Ansicht INFORMATION_SCHEMA.TABLE_CONSTRAINTS hat das folgende Schema:

Spaltenname Typ Bedeutung

CONSTRAINT_CATALOG

STRING

Der Name des Einschränkungsprojekts.

CONSTRAINT_SCHEMA

STRING

Der Name des Einschränkungs-Datasets.

CONSTRAINT_NAME

STRING

Der Name der Einschränkung.

TABLE_CATALOG

STRING

Der Name des eingeschränkten Tabellenprojekts.

TABLE_SCHEMA

STRING

Der Name des eingeschränkten Tabellen-Datasets.

TABLE_NAME

STRING

Der Name der eingeschränkten Tabelle.

CONSTRAINT_TYPE

STRING

PRIMARY KEY oder FOREIGN KEY.

IS_DEFERRABLE

STRING

YES oder NO, je nachdem, ob eine Einschränkung zurückgestellt werden kann. Nur NO wird unterstützt.

INITIALLY_DEFERRED

STRING

Nur NO wird unterstützt.

ENFORCED

STRING

YES oder NO, je nachdem, ob die Einschränkung erzwungen wird.
Nur NO wird unterstützt.

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.TABLE_CONSTRAINTS; Dataset-Ebene Dataset-Standort
Ersetzen Sie Folgendes:

  • 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.TABLE_CONSTRAINTS
    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 Datasets
    • TABLE: 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.TABLE_CONSTRAINTS;

    Bei vorhandenen Einschränkungen sehen die Abfrageergebnisse etwa so aus:

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

    Wenn für die Tabelle oder das Dataset keine Einschränkungen gelten, sehen die Abfrageergebnisse so aus:

    +-----------------------------+
    | There is no data to display |
    +-----------------------------+