Estou tentando aprender a administração do PostgreSQL e comecei a aprender como usar a psql
ferramenta de linha de comando.
Quando efetuo login psql --username=postgres
, como faço para listar todos os bancos de dados e tabelas?
Eu tentei \d
, d
e dS+
mas nada está listado. Eu criei dois bancos de dados e algumas tabelas com o pgAdmin III, então eu sei que eles devem estar listados.
postgresql
tools
psql
command-line
Jonas
fonte
fonte
psql -l
psql --username=postgres -l
.Respostas:
Observe os seguintes comandos:
\list
ou\l
: lista todos os bancos de dados\dt
: lista todas as tabelas no banco de dados atualVocê nunca verá tabelas em outros bancos de dados, essas tabelas não são visíveis. Você precisa se conectar ao banco de dados correto para ver suas tabelas (e outros objetos).
Para alternar bancos de dados:
\connect database_name
ou\c database_name
Veja o manual sobre psql .
fonte
\c db_name
para se conectar a um determinado banco de dados.\dt
não parece listar todas as tabelas no banco de dados atual (parece excluir aqueles que não são encontrados nosearch_path
, pelo menos em 9.2)\dt *.
listará todas as tabelas em todos os esquemas, sem precisar modificar o caminho da pesquisa.psql -U username -l
mas ele não funciona com a versão da barra.Isso lista bancos de dados:
Isso lista tabelas no banco de dados atual
fonte
WHERE table_schema = 'public'
porque quero descartar apenas tabelas personalizadas.No Postgresql, esses comandos do terminal listam os bancos de dados disponíveis
Ou o comando declarou mais simplesmente:
Esses comandos imprimem isso no terminal:
Esses são os bancos de dados disponíveis.
No PSQL esses comandos listam as tabelas disponíveis
Você precisa especificar um banco de dados antes de poder listar as tabelas nesse banco de dados.
Isso leva você a um terminal psql:
Use o comando que
\d
significa mostrar todas as tabelas, visualizações e sequênciasIsso imprime:
Em seguida, para sair do terminal psql, digite
\q
e pressione enter. OuCtrl-D
faz a mesma coisa. Estas são as tabelas nesse banco de dados.fonte
\d[S+] list tables, views, and sequences
\l
também é uma abreviação de\list
. Existem alguns comandos slash, que você pode listar no psql usando\?
.fonte
Para obter mais informações sobre o banco de dados e a lista de tabelas, faça o seguinte:
\l+
listar bancos de dadose
\d+
para listar todas as tabelas no esquema search_path atual no banco de dados atual.fonte
No pg_Admin, você pode simplesmente executar o seguinte em seu banco de dados atual e ele obterá todas as tabelas para o esquema especificado:
Isso fornecerá uma lista de todas as tabelas permanentes (geralmente as tabelas que você está procurando). Você pode obter apenas os nomes das tabelas se alterar o
*
curinga para apenas ostable_name
. O públicotable_schema
é o esquema padrão para a maioria dos bancos de dados, a menos que seu administrador tenha configurado um novo esquema.fonte
É possível que você tenha inserido as tabelas em um esquema que não esteja no seu caminho de pesquisa ou no padrão, ou seja, público e, portanto, as tabelas não serão exibidas usando \ dt. Se você usar um esquema chamado, digamos, dados, poderá corrigir isso executando,
alter database <databasename> set search_path=data, public;
Saia e entre novamente no psql e agora \ dt também mostrará as tabelas nos dados do esquema.
fonte
set search_path=data, public;
seria fazer o truque, também :)