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 |
---|---|---|
|
|
Der Name des Einschränkungsprojekts. |
|
|
Der Name des Einschränkungs-Datasets. |
|
|
Der Name der Einschränkung. |
|
|
Der Projektname der eingeschränkten Tabelle. |
|
|
Der Name des eingeschränkten Tabellen-Datasets. |
|
|
Der Name der eingeschränkten Tabelle. |
|
|
Der Name der eingeschränkten Spalte. |
|
|
Die ordinale Position der Spalte innerhalb des Einschränkungsschlüssels (beginnend mit 1). |
|
|
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 |
- 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 DatasetsTABLE
: 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 | +---------------------------+--------------+-------------+------------------+-------------------------------+