Eu criei alguns novos UDTs no PostgreSQL. No entanto, agora tenho dois problemas:
- como ver quais UDTs foram definidas?
- como ver as colunas definidas dentro desses UDTs?
Infelizmente, não encontrei nada sobre isso na documentação do PostgreSQL.
Eu criei alguns novos UDTs no PostgreSQL. No entanto, agora tenho dois problemas:
Infelizmente, não encontrei nada sobre isso na documentação do PostgreSQL.
Isso faz você começar?
No psql você pode
\set ECHO_HIDDEN on
fazer com que o psql mostre as consultas usadas para gerar a saída dos\d...
comandos. Descobri que essas consultas são muito úteis como ponto de partida ao extrair metadados de bancos de dados.Atualização: 16/12/2019
Para tipos compostos, os metadados das colunas podem ser determinados usando algo como o seguinte:
Os clientes padrão têm funcionalidade para cobrir isso:
pgAdmin 4
GUI padrão.
Certifique-se de que os tipos estejam habilitados no navegador de objetos: Arquivo - Preferências - Navegador - Nós .
À esquerda, você vê os tipos definidos pelo usuário no esquema escolhido. (Pergunta 1 )
O
SQL pane
à direita tem o script SQL de engenharia reversa para o tipo selecionado. (Pergunta 2 )Mais detalhes nos outros painéis, como
Dependents
etc.psql
O console interativo padrão.
\dT
para obter uma lista de tipos definidos pelo usuário.\d type_name
para obter a lista de definição de coluna para o tipo fornecido.O manual:
Minha ênfase em negrito. O comando também funciona para tipos compostos desde pelo menos o Postgres 9.1.
E:
Tente executar este código:
Esta é uma alternativa muito simples , mas suficiente para casos de uso simples. Quando o tipo da coluna é UDT, usamos a
udt_name
coluna dainformation_schema.columns
tabela.Resultado (
geometry
é um UDT):Com
psql
:\dT
mostre a lista de tipos definidos pelo usuário.\dT+ <type_name>
mostre determinado tipo definido pelo usuário, com detalhes.\dT <type_name>
mostre determinado tipo definido pelo usuário, sem detalhes.Usando a resposta de gsiems , arquivei o objetivo de imitar o 'CREATE TYPE' em PgAdmin & PgBackup
e execute-o no psql com estes comandos para ter apenas o código SQL
\t\a\g\a\t
.Ok em PG 9.6. Diga-me se está sendo executado com suas instâncias. Obviamente, ele precisa ser otimizado e testado.