Posso listar todas as tabelas em todos os esquemas usando
> \dt *.*
mas isso também lista as tabelas do sistema que superam em muito as minhas tabelas com as quais me importo. Eu gostaria de todas as tabelas (e possivelmente exibições) criadas por mim no esquema público e todos os esquemas que eu defini.
Espero encontrar uma maneira de fazer isso sem precisar adicionar esquemas explicitamente ao caminho de pesquisa à medida que os crio conforme descrito aqui:
https://stackoverflow.com/a/12902069
EDITAR:
Com base na resposta aceita, criei a seguinte exibição:
create view my_tables as
select table_catalog, table_schema, table_name, table_type
from information_schema.tables
where table_schema not in ('pg_catalog', 'information_schema');
E agora o seguinte comando me dá o que eu queria:
select * from my_tables;
Isso listará todas as tabelas às quais o usuário atual tem acesso, não apenas aquelas que pertencem ao usuário atual:
(Não tenho certeza se
not like 'pg_toast%'
é realmente necessário.)Se você realmente precisar das informações do proprietário, provavelmente precisará usar
pg_class
tabelas relacionadas.Edit: esta é a consulta que inclui as informações do proprietário:
A resposta curta para a pergunta seria:
Veja isso. Todas as tabelas: