Odpowiedzi:
We wszystkich schematach:
=> \dt *.*
W określonym schemacie:
=> \dt public.*
Możliwe jest stosowanie wyrażeń regularnych z pewnymi ograniczeniami
\dt (public|s).(s|t)
List of relations
Schema | Name | Type | Owner
--------+------+-------+-------
public | s | table | cpn
public | t | table | cpn
s | t | table | cpn
Zaawansowani użytkownicy mogą używać notacji wyrażeń regularnych, takich jak klasy znaków, na przykład [0-9], aby dopasować dowolną cyfrę. Wszystkie znaki specjalne wyrażeń regularnych działają zgodnie z opisem w Sekcji 9.7.3, z wyjątkiem tego, że
.
jest traktowane jako separator, jak wspomniano powyżej,*
który jest tłumaczony na notację wyrażenia regularnego.*
,?
która jest tłumaczona.
i$
która jest dosłownie dopasowana. Możesz emulować te znaki wzorca w razie potrzeby pisząc?
dla.
,(R+|)
dlaR*
lub(R|)
dlaR?
.$
nie jest potrzebny jako znak wyrażenia regularnego, ponieważ wzorzec musi pasować do całej nazwy, w przeciwieństwie do zwykłej interpretacji wyrażeń regularnych (innymi słowy,$
jest automatycznie dołączany do wzoru). Napisz*
na początku i / lub na końcu, jeśli nie chcesz, aby wzór został zakotwiczony. Zauważ, że w podwójnych cudzysłowach wszystkie znaki specjalne wyrażeń regularnych tracą swoje specjalne znaczenie i są dosłownie dopasowane. Ponadto znaki specjalne wyrażeń regularnych są dosłownie dopasowywane do wzorców nazw operatorów (tzn. Argumentów\do
).
\dt public.user_info, public.user_scope
?
\dt public.a; \dt public.b;
na jednej linii.
search_path
, i że domyślne do "$user", public.*
. W związku z tym set search_path=s; \dt
ma zamiar wyświetlić wszystkie tabele w schemacie s
.
Możesz wybrać tabele z information_schema
SELECT * FROM information_schema.tables
WHERE table_schema = 'public'
Alternatywnie information_schema
można użyć pg_tables
:
select * from pg_tables where schemaname='public';
SELECT tablename FROM pg_tables WHERE schemaname = 'public';
information_schema
nie wyświetlaniu pozycji ze public
schematu, ale pg_tables
metoda działała dobrze. Wielkie dzięki!
Dla tych, którzy napotkają to w przyszłości:
Jeśli chcesz zobaczyć listę relacji dla kilku schematów:
$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
jest ekwiwalentny\dt public.*
, mam rację?