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_path
e ciò è predefinito "$user", public.*
. Di conseguenza, set search_path=s; \dt
elencherà 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_schema
non elencare gli elementi dallo public
schema, ma il pg_tables
metodo 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?