Visualização de CONSTRAINT_COLUMN_USAGE

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

Esquema

A visualização INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE tem o seguinte esquema:

Nome da coluna Tipo de dados Valor

TABLE_CATALOG

STRING

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 primária, se a coluna for usada pela chave primária, ou o nome da chave externa, se a coluna for usada por uma chave externa.

Escopo e sintaxe

As consultas nesta visualização precisam ter um qualificador de conjunto de dados. Para consultas com um qualificador de conjunto de dados, é preciso ter permissões para o conjunto de dados. Para mais informações, consulte Sintaxe. A tabela a seguir explica os escopos de região e recurso dessa visualização:

Nome da visualização Escopo do recurso Escopo da região
[PROJECT_ID.]DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE; Nível do conjunto de dados Local do conjunto de dados
Substitua:

  • Opcional: PROJECT_ID: o ID do seu projeto do Google Cloud. Se não for especificado, o projeto padrão será usado.

Exemplos

A consulta a seguir mostra as restrições de uma única tabela em um conjunto de dados:

SELECT *
FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
WHERE table_name = TABLE;

Substitua:

  • PROJECT_ID: opcional. O nome do projeto na nuvem. Se não for especificado, esse comando usará o projeto padrão.
  • DATASET: o nome do conjunto de dados.
  • TABLE: o nome da tabela.

Por outro lado, a consulta a seguir mostra as restrições de todas as tabelas em um único conjunto de dados.

SELECT *
FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE;

Com as restrições atuais, os resultados da consulta serã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 serão parecidos com estes:

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