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 |
    +-----------------------------+