Visualizzazione KEY_COLUMN_USAGE
La vista KEY_COLUMN_USAGE
contiene colonne delle tabelle di TABLE_CONSTRAINTS
vincolate come chiavi da vincoli PRIMARY KEY
e FOREIGN KEY
.
Schema
La vista INFORMATION_SCHEMA.KEY_COLUMN_USAGE
ha il seguente schema:
Nome colonna | Tipo di dati | Valore |
---|---|---|
|
|
Il nome del progetto del vincolo. |
|
|
Il nome del set di dati del vincolo. |
|
|
Il nome del vincolo. |
|
|
Il nome del progetto della tabella vincolata. |
|
|
Il nome del set di dati a tabella vincolata. |
|
|
Il nome della tabella vincolata. |
|
|
Il nome della colonna vincolata. |
|
|
La posizione ordinale della colonna all'interno della chiave del vincolo (a partire da 1). |
|
|
Per le chiavi esterne, la posizione ordinale della colonna all'interno del vincolo di chiave primaria (a partire da 1). Questo valore è NULL per i vincoli di chiave primaria. |
Ambito e sintassi
Le query in questa visualizzazione devono includere un qualificatore del set di dati. Per le query con un qualificatore del set di dati, devi disporre delle autorizzazioni per il set di dati. Per ulteriori informazioni, consulta la sezione Sintassi. La tabella seguente mostra gli ambiti della regione e delle risorse per questa visualizzazione:
Nome vista | Ambito risorsa | Ambito regione |
---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.KEY_COLUMN_USAGE; |
Livello set di dati | Posizione del set di dati |
- (Facoltativo)
PROJECT_ID
: l'ID del tuo progetto Google Cloud. Se non specificato, viene utilizzato il progetto predefinito.
Per le query con un qualificatore del set di dati, devi disporre delle autorizzazioni per il set di dati. Per le query con un qualificatore di regione, devi disporre delle autorizzazioni per il progetto.
Esempi
Esempio 1:
La seguente query mostra i vincoli per una singola tabella in un set di dati:
SELECT * FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE table_name = TABLE;
Sostituisci quanto segue:
PROJECT_ID
: facoltativo. Il nome del tuo progetto cloud. Se non specificato, questo comando utilizza il progetto predefinito.DATASET
: il nome del set di dati.TABLE
: il nome della tabella.
Al contrario, la seguente query mostra l'utilizzo delle colonne chiave per tutte le tabelle in un singolo set di dati.
SELECT * FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.KEY_COLUMN_USAGE;
Se una tabella o un set di dati non ha vincoli, i risultati della query avranno il seguente aspetto:
+-----------------------------+ | There is no data to display | +-----------------------------+
Esempio 2:
Le seguenti istruzioni DDL creano una tabella di chiave primaria e una tabella di chiave esterna.
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);
Se viene eseguita una query con l'istruzione dell'Esempio 1, i risultati della query sono simili ai seguenti. Tieni presente che le colonne CONSTRAINT_CATALOG
,
CONSTRAINT_SCHEMA
e duplicate non sono incluse nei risultati di esempio.
+---------------------------+--------------+-------------+------------------+-------------------------------+ | 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 | +---------------------------+--------------+-------------+------------------+-------------------------------+