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
Dabei gilt:

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

Dabei gilt:

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