Vista CONSTRAINT_COLUMN_USAGE

A vista CONSTRAINT_COLUMN_USAGE contém todas as colunas usadas por restrições. Para as restrições de PRIMARY KEY, estas são as colunas da vista KEY_COLUMN_USAGE. Para restrições FOREIGN KEY, estas são as colunas das tabelas referenciadas.

Esquema

A vista INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE tem o seguinte esquema:

Nome da coluna Tipo de dados Valor

TABLE_CATALOG

STRING

O nome do projeto que contém o conjunto de dados.

TABLE_SCHEMA

STRING

O nome do conjunto de dados que contém a tabela. Também conhecido como datasetId.

TABLE_NAME

STRING

O nome da tabela. Também conhecido como tableId.

COLUMN_NAME

STRING

O nome da coluna.

CONSTRAINT_CATALOG

STRING

O nome do projeto de restrição.

CONSTRAINT_SCHEMA

STRING

O nome do conjunto de dados de restrição.

CONSTRAINT_NAME

STRING

O nome da restrição. Pode ser o nome da chave principal se a coluna for usada pela chave principal ou o nome da chave externa se a coluna for usada por uma chave externa.

Â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.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE; Nível do conjunto de dados Localização do conjunto de dados
Substitua o seguinte:
  • Opcional: PROJECT_ID: o ID do seu projeto do Trusted Cloud Google Cloud. Se não for especificado, é usado o projeto predefinido.

Exemplos

A consulta seguinte mostra as restrições para uma única tabela num conjunto de dados:

SELECT *
FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_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 consulta seguinte mostra as restrições para todas as tabelas num único conjunto de dados.

SELECT *
FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE;

Com as restrições existentes, os resultados da consulta são semelhantes aos seguintes:

+-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+
| 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 a tabela ou o conjunto de dados não tiver restrições, os resultados da consulta têm o seguinte aspeto:

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