Risposte:
In tutti gli schemi:
=> \dt *.*
In uno schema particolare:
=> \dt public.*
È possibile utilizzare espressioni regolari con alcune restrizioni
\dt (public|s).(s|t)
List of relations
Schema | Name | Type | Owner
--------+------+-------+-------
public | s | table | cpn
public | t | table | cpn
s | t | table | cpn
Gli utenti esperti possono utilizzare le notazioni di espressioni regolari come le classi di caratteri, ad esempio [0-9] per abbinare qualsiasi cifra. Tutti i caratteri speciali di espressione regolare funzionano come specificato nella Sezione 9.7.3, ad eccezione del
.quale viene considerato come un separatore come menzionato sopra,*che viene tradotto nella notazione di espressione regolare.*,?che viene tradotto.e$che viene letteralmente abbinato. È possibile emulare questi caratteri del pattern quando necessario scrivendo?per.,(R+|)perR*o(R|)perR?.$non è necessario come carattere di espressione regolare poiché il modello deve corrispondere al nome intero, a differenza della normale interpretazione delle espressioni regolari (in altre parole,$viene automaticamente aggiunto al modello). Scrivi*all'inizio e / o alla fine se non desideri che il motivo sia ancorato. Si noti che tra virgolette doppie, tutti i caratteri speciali delle espressioni regolari perdono i loro significati speciali e vengono abbinati letteralmente. Inoltre, i caratteri speciali dell'espressione regolare sono letteralmente abbinati nei modelli dei nomi degli operatori (ovvero, l'argomento di\do).
\dt public.user_info, public.user_scope?
\dt public.a; \dt public.b;su una riga.
search_pathe ciò è predefinito "$user", public.*. Di conseguenza, set search_path=s; \dtelencherà tutte le tabelle nello schema s.
È possibile selezionare le tabelle da information_schema
SELECT * FROM information_schema.tables
WHERE table_schema = 'public'
In alternativa information_schemaè possibile utilizzare pg_tables:
select * from pg_tables where schemaname='public';
SELECT tablename FROM pg_tables WHERE schemaname = 'public';
information_schemanon elencare gli elementi dallo publicschema, ma il pg_tablesmetodo ha funzionato bene. Grazie molto!
Per coloro che si imbatteranno in questo in futuro:
Se desideri visualizzare un elenco di relazioni per diversi schemi:
$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.*, ho ragione?