Respostas:
Em todos os esquemas:
=> \dt *.*
Em um esquema específico:
=> \dt public.*
É possível usar expressões regulares com algumas restrições
\dt (public|s).(s|t)
List of relations
Schema | Name | Type | Owner
--------+------+-------+-------
public | s | table | cpn
public | t | table | cpn
s | t | table | cpn
Usuários avançados podem usar notações de expressão regular, como classes de caracteres, por exemplo [0-9] para corresponder a qualquer dígito. Todos os caracteres especiais de expressão regular funcionam conforme especificado na Seção 9.7.3, exceto pelo
.
que é considerado como um separador, como mencionado acima,*
que é traduzido para a notação de expressão regular e.*
,?
que é traduzida para.
e$
que é correspondida literalmente. Você pode emular esses caracteres padrão quando necessário, escrevendo?
para.
,(R+|)
paraR*
ou(R|)
paraR?
.$
não é necessário como um caractere de expressão regular, pois o padrão deve corresponder ao nome inteiro, diferente da interpretação usual das expressões regulares (em outras palavras,$
é automaticamente anexado ao seu padrão). Escreva*
no início e / ou no final se não desejar que o padrão seja ancorado. Observe que, entre aspas duplas, todos os caracteres especiais de expressão regular perdem seus significados especiais e são correspondidos literalmente. Além disso, os caracteres especiais da expressão regular são correspondidos literalmente nos padrões de nome do operador (ou seja, o argumento de\do
).
\dt public.user_info, public.user_scope
?
\dt public.a; \dt public.b;
em uma linha.
search_path
e é o padrão "$user", public.*
. Consequentemente, set search_path=s; \dt
listará todas as tabelas no esquema s
.
Você pode selecionar as tabelas de information_schema
SELECT * FROM information_schema.tables
WHERE table_schema = 'public'
Como alternativa information_schema
, é possível usar pg_tables
:
select * from pg_tables where schemaname='public';
SELECT tablename FROM pg_tables WHERE schemaname = 'public';
information_schema
não listar itens do public
esquema, mas o pg_tables
método funcionou bem. Muito Obrigado!
Para aqueles que se depararem com isso no futuro:
Se você deseja ver uma lista de relações para vários esquemas:
$psql mydatabase
mydatabase=# SET search_path TO public, usa; #schema examples
SET
mydatabase=# \dt
List of relations
Schema | Name | Type | Owner
--------+-----------------+-------+----------
public | counties | table | postgres
public | spatial_ref_sys | table | postgres
public | states | table | postgres
public | us_cities | table | postgres
usa | census2010 | table | postgres
\dt
é equivalente a\dt public.*
, estou certo?