Vista KEY_COLUMN_USAGE
A vista KEY_COLUMN_USAGE
contém colunas das tabelas de TABLE_CONSTRAINTS
que são restritas como chaves por restrições de chave primária e chave externa.
Esquema
A vista INFORMATION_SCHEMA.KEY_COLUMN_USAGE
tem o seguinte esquema:
Nome da coluna | Tipo de dados | Valor |
---|---|---|
|
|
O nome do projeto de restrição. |
|
|
O nome do conjunto de dados de restrição. |
|
|
O nome da restrição. |
|
|
O nome do projeto da tabela restrita. |
|
|
O nome do conjunto de dados da tabela restrita. |
|
|
O nome da tabela restrita. |
|
|
O nome da coluna restrita. |
|
|
A posição ordinal da coluna na chave de restrição (a começar em 1). |
|
|
Para chaves externas, a posição ordinal da coluna na restrição de chave primária (a começar em 1). Este valor é NULL
para restrições de chave primária. |
Âmbito e sintaxe
As consultas nesta vista têm de incluir um qualificador de conjunto de dados. Para consultas com um qualificador de conjunto de dados, tem de ter autorizações para o conjunto de dados. Para mais informações, consulte Sintaxe. A tabela seguinte mostra os âmbitos de região e de recursos para esta vista:
Nome da visualização de propriedade | Âmbito do recurso | Âmbito da região |
---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.KEY_COLUMN_USAGE; |
Nível do conjunto de dados | Localização do conjunto de dados |
-
Opcional:
PROJECT_ID
: o ID do seu projeto do Trusted Cloud Google Cloud. Se não for especificado, é usado o projeto predefinido.
Para consultas com um qualificador de conjunto de dados, tem de ter autorizações para o conjunto de dados. Para consultas com um qualificador de região, tem de ter autorizações para o projeto.
Exemplos
Exemplo 1:
A consulta seguinte mostra as restrições para uma única tabela num conjunto de dados:
SELECT * FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE table_name = TABLE;
Substitua o seguinte:
PROJECT_ID
: opcional. O nome do seu projeto na nuvem. Se não for especificado, este comando usa o projeto predefinido.DATASET
: o nome do conjunto de dados.TABLE
: o nome da tabela.
Por outro lado, a seguinte consulta mostra a utilização das colunas principais para todas as tabelas num único conjunto de dados.
SELECT * FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.KEY_COLUMN_USAGE;
Se uma tabela ou um conjunto de dados não tiver restrições, os resultados da consulta têm o seguinte aspeto:
+-----------------------------+ | There is no data to display | +-----------------------------+
Exemplo 2:
As seguintes declarações DDL criam uma tabela de chaves principais e uma tabela de chaves externas.
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 a consulta for feita com a declaração no Exemplo 1, os resultados da consulta
são semelhantes aos seguintes. Tenha em atenção que CONSTRAINT_CATALOG
, CONSTRAINT_SCHEMA
e as colunas duplicadas não estão incluídas nos resultados de exemplo.
+---------------------------+--------------+-------------+------------------+-------------------------------+ | 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 | +---------------------------+--------------+-------------+------------------+-------------------------------+