Visualizzazione CONSTRAINT_COLUMN_USAGE

La vista CONSTRAINT_COLUMN_USAGE contiene tutte le colonne utilizzate dai vincoli. Per i vincoli PRIMARY KEY, queste sono le colonne la vista KEY_COLUMN_USAGE. Per i vincoli FOREIGN KEY, queste sono le colonne delle tabelle a cui viene fatto 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. Inoltre indicato come 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 di vincolo.

CONSTRAINT_SCHEMA

STRING

Il nome del set di dati del vincolo.

CONSTRAINT_NAME

STRING

Il nome del vincolo. Può essere il nome del chiave primaria se la colonna è utilizzata dalla chiave primaria o dal nome chiave esterna se la colonna è utilizzata da una chiave esterna.

Ambito e sintassi

Le query su questa vista devono includere un qualificatore del set di dati. Per le query con un qualificatore set di dati, devi disporre delle autorizzazioni per il set di dati. Per ulteriori informazioni informazioni vedi Sintassi. La tabella seguente mostra gli ambiti delle risorse e della regione per questa vista:

Nome vista Ambito risorsa Ambito della regione
[PROJECT_ID.]DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE; Livello del 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. In caso contrario specificato, questo comando usa 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 delle 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 saranno simili ai seguenti:

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