Mostrar tabelas no PostgreSQL

O que'é o equivalente a show tables (do MySQL) no PostgreSQL?

Solução

A partir da interface de linha de comando psql,

Primeiro, escolha a sua base de dados

\c database_name

Depois, isto mostra todas as tabelas do esquema actual:

\dt

Programmaticamente (ou a partir da interface psql também, é claro):

SELECT * FROM pg_catalog.pg_tables;

As tabelas do sistema vivem no banco de dados pg_catalog.

Comentários (12)

Entrar como superutilizador:

sudo -u postgres psql

Você pode listar todos os bancos de dados e usuários por comando \l', (listar outros comandos por\l').

Agora se você quiser ver outros bancos de dados você pode mudar o usuário/base de dados por comando \c' como\c template1', \c postgres postgres' e usar\d', \dt' ou\dS' para ver tabelas/visões/etc.

Comentários (1)

(Para a integralidade)

Você também pode consultar o (padrão SQL) esquema de informação:

SELECT
    table_schema || '.' || table_name
FROM
    information_schema.tables
WHERE
    table_type = 'BASE TABLE'
AND
    table_schema NOT IN ('pg_catalog', 'information_schema');
Comentários (2)