Existe um equivalente do MySQL SHOW CREATE TABLE
no Postgres? Isso é possível? Se não, qual é a próxima melhor solução?
Eu preciso da instrução porque eu a uso para criar a tabela em um servidor remoto (por WCF).
Existe um equivalente do MySQL SHOW CREATE TABLE
no Postgres? Isso é possível? Se não, qual é a próxima melhor solução?
Eu preciso da instrução porque eu a uso para criar a tabela em um servidor remoto (por WCF).
pg_dump:
ou use as ferramentas gráficas do PostgreSQL (pgAdmin,phpPgAdmin, etc.)
Você pode tentar rastrear no arquivo de log do PostgreSQL o que
pg_dump --table table --schema-only
realmente faz. Então você pode usar o mesmo método para escrever sua própria função sql.Na linha de comando (
psql
) você pode executar:\d <table name>
para listar todas as colunas, seus tipos e índices.Com base na primeira parte da resposta do @CubicalSoft, você pode inserir a seguinte função que deve funcionar para tabelas simples (assume o esquema 'público' padrão e omite restrições, índices e tipos de dados definidos pelo usuário etc. etc.). A resposta do @RJS é a única maneira de fazer isso corretamente no momento; isso é algo que deve ser construído no psql!
Percebo que estou um pouco atrasado para esta festa, mas esse foi o primeiro resultado da minha Pesquisa do Google, então pensei em responder com o que encontrei.
Você pode ir muito longe em direção a uma solução com esta consulta para obter as colunas:
E então esta consulta para os índices mais comuns:
Então é uma questão de construir a(s) string(s) de consulta no formato correto.
A extensão ddlx do Postgres ( https://github.com/lacanoid/pgddl ) faz exatamente isso e muito mais.
DBeaver é uma das melhores ferramentas para gerenciamento de banco de dados SQL. Você pode obter a consulta da tabela
create table table_name
de maneira muito simples na ferramenta DBeaver.No pgAdmin 4 , basta encontrar a tabela na árvore à esquerda, ex:
Quando a tabela estiver selecionada, abra a guia SQL à direita. Exibe o
CREATE TABLE
para a tabela selecionada.Conforme respondido em https://serverfault.com/a/875414/333439 , com o
\d <table>
meta-comando empsql
é possível mostrar a estrutura da tabela no banco de dados. Se você deseja visualizar a consulta usada no meta-comando, pode usar o comandopsql -E
. Conforme descrito na página de manual, o-E
switch ecoa as\d
consultas de meta-comandos. Assim, você pode iniciarpsql -E
, pode visualizar a estrutura da tabela com\d <table>
meta-comando e, de acordo com o-E
switch, pode visualizar a consulta gerada para descrever a estrutura da tabelaMelhor