Visualizzazione CONSTRAINT_COLUMN_USAGE
La visualizzazione CONSTRAINT_COLUMN_USAGE
contiene tutte le colonne utilizzate dai vincoli.
Per i vincoli PRIMARY KEY
, si tratta delle colonne della visualizzazione 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 lo schema seguente:
Nome colonna | Tipo di dati | Valore |
---|---|---|
|
|
Il nome del progetto che contiene il set di dati. |
|
|
Il nome del set di dati che contiene la tabella. Nota anche come datasetId . |
|
|
Il nome della tabella. Chiamato anche
tableId . |
|
|
Il nome della colonna. |
|
|
Il nome del progetto del vincolo. |
|
|
Il nome del set di dati del vincolo. |
|
|
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 maggiori informazioni informazioni vedi Sintassi. La tabella seguente mostra gli ambiti delle risorse e delle regioni per questa vista:
Nome vista | Ambito risorsa | Ambito della regione |
---|---|---|
[PROJECT_ID.]DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE; |
A livello di 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.
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 viene 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 di 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 saranno simili ai seguenti:
+-----------------------------+ | There is no data to display | +-----------------------------+