Ansicht KEY_COLUMN_USAGE

Die Ansicht KEY_COLUMN_USAGE enthält Spalten der Tabellen von TABLE_CONSTRAINTS, die durch die Einschränkungen PRIMARY KEY und FOREIGN KEY als Schlüssel eingeschränkt sind.

Schema

Die Ansicht INFORMATION_SCHEMA.KEY_COLUMN_USAGE hat das folgende Schema:

Spaltenname Datentyp Wert

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 Projektname der eingeschränkten Tabelle.

TABLE_SCHEMA

STRING

Der Name des eingeschränkten Tabellen-Datasets.

TABLE_NAME

STRING

Der Name der eingeschränkten Tabelle.

COLUMN_NAME

STRING

Der Name der eingeschränkten Spalte.

ORDINAL_POSITION

INT64

Die ordinale Position der Spalte innerhalb des Einschränkungsschlüssels (beginnend mit 1).

POSITION_IN_UNIQUE_CONSTRAINT

INT64

Bei Fremdschlüsseln die ordinale Position der Spalte innerhalb der Primärschlüsseleinschränkung (ab 1). Dieser Wert ist NULL für Primärschlüsseleinschränkungen.

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

  • Optional: PROJECT_ID: die ID Ihres Google Cloud-Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet.

    Für Abfragen mit einem Dataset-Qualifier benötigen Sie Berechtigungen für das Dataset. Für Abfragen mit einem Regions-Qualifier müssen Sie Berechtigungen für das Projekt haben.

    Beispiele

    Beispiel 1:

    Die folgende Abfrage zeigt die Einschränkungen für eine einzelne Tabelle in einem Dataset:

    SELECT *
    FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.KEY_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 Datasets
    • TABLE: der Name der Tabelle

    Umgekehrt zeigt die folgende Abfrage die Nutzung der Schlüsselspalten für alle Tabellen in einem einzelnen Dataset.

    SELECT *
    FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.KEY_COLUMN_USAGE;

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

    +-----------------------------+
    | There is no data to display |
    +-----------------------------+
    
    Beispiel 2:

    Mit den folgenden DDL-Anweisungen werden eine Primärschlüsseltabelle und eine Fremdschlüsseltabelle erstellt.

    CREATE TABLE composite_pk (x int64, y string, primary key (x, y) NOT ENFORCED);
    CREATE TABLE table composite_fk (x int64, y string, z string,  primary key (x, y)
    NOT ENFORCED, CONSTRAINT composite_fk foreign key (z, x)
    REFERENCES composite_pk (y, x) NOT ENFORCED);

    Bei der Abfrage mit der Anweisung in Beispiel 1 sehen die Abfrageergebnisse in etwa so aus: Beachten Sie, dass die Spalten CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA und doppelte Spalten nicht in den Beispielergebnissen enthalten sind.

    +---------------------------+--------------+-------------+------------------+-------------------------------+
    |     CONSTRAINT_NAME       |  TABLE_NAME  | COLUMN_NAME | ORDINAL_POSITION | POSITION_IN_UNIQUE_CONSTRAINT |
    +---------------------------+--------------+-------------+------------------+-------------------------------+
    | composite_pk.pk$          | composite_pk | x           | 1                | NULL                          |
    | composite_pk.pk$          | composite_pk | y           | 2                | NULL                          |
    | composite_fk.pk$          | composite_fk | x           | 1                | NULL                          |
    | composite_fk.pk$          | composite_fk | y           | 2                | NULL                          |
    | composite_fk.composite_fk | composite_fk | z           | 1                | 2                             |
    | composite_fk.composite_fk | composite_fk | x           | 2                | 1                             |
    +---------------------------+--------------+-------------+------------------+-------------------------------+