Visualizzazione CONSTRAINT_COLUMN_USAGE

La visualizzazione CONSTRAINT_COLUMN_USAGE contiene tutte le colonne utilizzate dai vincoli. Per i vincoli PRIMARY KEY, queste sono le colonne della visualizzazione KEY_COLUMN_USAGE. Per i vincoli FOREIGN KEY, queste sono le colonne delle tabelle di riferimento.

Schema

La vista INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ha il seguente schema:

Nome colonna Tipo di dati Valore

TABLE_CATALOG

STRING

Il nome del progetto che contiene il set di dati.

TABLE_SCHEMA

STRING

Il nome del set di dati che contiene la tabella. Chiamato anche datasetId.

TABLE_NAME

STRING

Il nome della tabella. Chiamato anche tableId.

COLUMN_NAME

STRING

Il nome della colonna.

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. Può essere il nome della chiave primaria, se la colonna viene utilizzata dalla chiave primaria, o il nome della chiave esterna, se la colonna viene utilizzata da una chiave esterna.

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.INFORMATION_SCHEMA.CONSTRAINT_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.

Esempi

La seguente query mostra i vincoli per una singola tabella in un set di dati:

SELECT *
FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_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 i vincoli per tutte le tabelle in un singolo set di dati.

SELECT *
FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE;

Con i vincoli esistenti, i risultati della query sono simili ai seguenti:

+-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+
| row |    table_catalog    | table_schema | table_name | column_name | constraint_catalog  | constraint_schema |     constraint_name     |
+-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+
|   1 | myConstraintCatalog | myDataset    | orders     | o_okey      | myConstraintCatalog | myDataset         | orders.pk$              |
|   2 | myConstraintCatalog | myDataset    | orders     | o_okey      | myConstraintCatalog | myDataset         | lineitem.lineitem_order |
+-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+

Se la tabella o il set di dati non ha vincoli, i risultati della query avranno il seguente aspetto:

+-----------------------------+
| There is no data to display |
+-----------------------------+