35.32. key_column_usage #

A visão key_column_usage identifica todas as colunas no banco de dados corrente restringidas por alguma restrição de unicidade, chave primária ou chave estrangeira. As restrições de verificação não estão incluídas nesta visão. São mostradas apenas as colunas para as quais o usuário corrente tem acesso, por ser o dono ou por ter algum privilégio.

Tabela 35.30. Colunas de key_column_usage

Coluna Tipo de dados

Descrição

constraint_catalog sql_identifier

Nome do banco de dados que contém a restrição (sempre o banco de dados corrente)

constraint_schema sql_identifier

Nome do esquema que contém a restrição

constraint_name sql_identifier

Nome da restrição

table_catalog sql_identifier

Nome do banco de dados que contém a tabela que contém a coluna restringida por esta restrição (sempre o banco de dados corrente)

table_schema sql_identifier

Nome do esquema que contém a tabela que contém a coluna restringida por esta restrição

table_name sql_identifier

Nome da tabela que contém a coluna restringida por esta restrição

column_name sql_identifier

Nome da coluna restringida por esta restrição

ordinal_position cardinal_number

Posição ordinal da coluna dentro da chave de restrição (contado a partir de 1)

position_in_unique_constraint cardinal_number

Para uma restrição de chave estrangeira, a posição ordinal da coluna referenciada dentro de sua restrição de unicidade (contado a partir de 1); caso contrário nula


Exemplo 35.30. Exemplo do tradutor

Colunas restringidas

Uso do esquema de informações para mostrar todas as colunas no banco de dados cristina da usuária cristina restringidas por alguma restrição de unicidade, chave primária ou chave estrangeira.

SELECT *
FROM information_schema.key_column_usage
WHERE constraint_schema IN ('public', 'tutorial')
ORDER BY constraint_name, table_name, ordinal_position\gx

-[ RECORD 1 ]-----------------+----------------------
constraint_catalog            | cristina
constraint_schema             | public
constraint_name               | bug_pkey
table_catalog                 | cristina
table_schema                  | public
table_name                    | bug
column_name                   | id
ordinal_position              | 1
position_in_unique_constraint |
-[ RECORD 2 ]-----------------+----------------------
constraint_catalog            | cristina
constraint_schema             | tutorial
constraint_name               | cidades_pkey
table_catalog                 | cristina
table_schema                  | tutorial
table_name                    | cidades
column_name                   | nome
ordinal_position              | 1
position_in_unique_constraint |
-[ RECORD 3 ]-----------------+----------------------
constraint_catalog            | cristina
constraint_schema             | tutorial
constraint_name               | clima_cidade_fkey
table_catalog                 | cristina
table_schema                  | tutorial
table_name                    | clima
column_name                   | cidade
ordinal_position              | 1
position_in_unique_constraint | 1
-[ RECORD 4 ]-----------------+----------------------
constraint_catalog            | cristina
constraint_schema             | public
constraint_name               | papel_iso_216_pkey
table_catalog                 | cristina
table_schema                  | public
table_name                    | papel_iso_216
column_name                   | codigo
ordinal_position              | 1
position_in_unique_constraint |
-[ RECORD 5 ]-----------------+----------------------
constraint_catalog            | cristina
constraint_schema             | public
constraint_name               | pessoa_pkey
table_catalog                 | cristina
table_schema                  | public
table_name                    | pessoa
column_name                   | id
ordinal_position              | 1
position_in_unique_constraint |
-[ RECORD 6 ]-----------------+----------------------
constraint_catalog            | cristina
constraint_schema             | public
constraint_name               | teste_pkey
table_catalog                 | cristina
table_schema                  | public
table_name                    | teste
column_name                   | chave
ordinal_position              | 1
position_in_unique_constraint |
-[ RECORD 7 ]-----------------+----------------------
constraint_catalog            | cristina
constraint_schema             | public
constraint_name               | unq_tamanho_gramatura
table_catalog                 | cristina
table_schema                  | public
table_name                    | papel_iso_216
column_name                   | tamanho
ordinal_position              | 1
position_in_unique_constraint |
-[ RECORD 8 ]-----------------+----------------------
constraint_catalog            | cristina
constraint_schema             | public
constraint_name               | unq_tamanho_gramatura
table_catalog                 | cristina
table_schema                  | public
table_name                    | papel_iso_216
column_name                   | gramatura
ordinal_position              | 2
position_in_unique_constraint |