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

CONSTRAINT_CATALOG

STRING

Il nome del progetto del vincolo.

CONSTRAINT_SCHEMA

STRING

Il nome del set di dati del vincolo.

CONSTRAINT_NAME

STRING

Il nome del vincolo.

TABLE_CATALOG

STRING

Il nome del progetto della tabella vincolata.

TABLE_SCHEMA

STRING

Il nome del set di dati a tabella vincolata.

TABLE_NAME

STRING

Il nome della tabella vincolata.

COLUMN_NAME

STRING

Il nome della colonna vincolata.

ORDINAL_POSITION

INT64

La posizione ordinale della colonna all'interno della chiave del vincolo (a partire da 1).

POSITION_IN_UNIQUE_CONSTRAINT

INT64

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
Sostituisci quanto segue:

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