Existe uma consulta que fará isso?
Encontrei algumas consultas que podem fazer isso em uma tabela, mas não consegui modificá-lo para que eu possa ver:
tablename | column | type
postgresql
schema
korda
fonte
fonte
Respostas:
Algo assim:
fonte
tc.constraint_type = 'PRIMARY KEY'
mostrará apenas chaves primárias. No entanto, cada chave primária é apoiado por uma indexé únicaposition_in_unique_constraint
indica a posição da chave ESTRANGEIRA, é sempre nulo para as chaves primárias. A coluna é correctaordinal_position
. Testado na PG 9.4.ordinal_position
devem ser usados. Oposition_in_unique_constraint
não é nulo apenas no uso de FKs.Esta é uma resposta mais precisa:
Você perdeu a
and kc.constraint_name = tc.constraint_name
peça, portanto ela lista todas as restrições.fonte
and kc.position_in_unique_constraint is not null
parte que falta . E você é fortemente encorajado a usar ANSI JOINs (enquanto muitos consideram isso uma questão de gosto).Por favor, considere isso também. Isso irá gerar o script para alterar todas as tabelas.
fonte
Eu acho que obter chave primária e chave estrangeira deve fazer assim. kc.position_in_unique_constraint não é nulo, esta condição pode obter apenas chaves estrangeiras.
fonte