Antworten:
In allen Schemata:
=> \dt *.*
In einem bestimmten Schema:
=> \dt public.*
Es ist möglich, reguläre Ausdrücke mit einigen Einschränkungen zu verwenden
\dt (public|s).(s|t)
List of relations
Schema | Name | Type | Owner
--------+------+-------+-------
public | s | table | cpn
public | t | table | cpn
s | t | table | cpn
Fortgeschrittene Benutzer können Notationen mit regulären Ausdrücken wie Zeichenklassen verwenden, z. B. [0-9], um mit einer beliebigen Ziffer übereinzustimmen. Alle Sonderzeichen für reguläre Ausdrücke funktionieren wie in Abschnitt 9.7.3 angegeben, mit der Ausnahme, dass
.
sie wie oben erwähnt als Trennzeichen verwendet werden,*
das in die Notation für reguläre Ausdrücke übersetzt wird.*
, in?
die übersetzt.
wird und$
die buchstäblich übereinstimmt. Sie können diese Musterzeichen bei Bedarf emulieren, indem Sie?
für.
,(R+|)
fürR*
oder(R|)
für schreibenR?
.$
wird nicht als Zeichen für reguläre Ausdrücke benötigt, da das Muster im Gegensatz zur üblichen Interpretation regulärer Ausdrücke (mit anderen Worten:$
wird automatisch an Ihr Muster angehängt). Schreiben Sie*
am Anfang und / oder Ende, wenn Sie nicht möchten, dass das Muster verankert wird. Beachten Sie, dass in doppelten Anführungszeichen alle Sonderzeichen mit regulären Ausdrücken ihre Sonderbedeutung verlieren und buchstäblich übereinstimmen. Außerdem werden die Sonderzeichen für reguläre Ausdrücke in Operator-Namensmustern (dh dem Argument von\do
) buchstäblich abgeglichen .
\dt public.user_info, public.user_scope
?
\dt public.a; \dt public.b;
einer Zeile zu arbeiten.
search_path
, und dass die Standardwerte "$user", public.*
. Folglich werden set search_path=s; \dt
alle Tabellen im Schema aufgelistet s
.
Sie können die Tabellen aus auswählen information_schema
SELECT * FROM information_schema.tables
WHERE table_schema = 'public'
Alternativ dazu information_schema
ist möglich pg_tables
:
select * from pg_tables where schemaname='public';
SELECT tablename FROM pg_tables WHERE schemaname = 'public';
information_schema
keine Elemente aus dem public
Schema aufgelistet wurden, aber die pg_tables
Methode hat gut funktioniert. Danke vielmals!
Für diejenigen, die in Zukunft darauf stoßen:
Wenn Sie eine Liste der Beziehungen für mehrere Schemata anzeigen möchten:
$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
Ist einfach gleichbedeutend mit\dt public.*
, habe ich recht?