it-swarm.com.de

PostgreSQL-Abfrage, um alle Tabellennamen aufzulisten?

Ist eine Abfrage verfügbar, um alle Tabellen in meiner Postgres-DB aufzulisten?.

Ich habe eine Frage ausprobiert wie:

SELECT table_name FROM information_schema.tables
                      WHERE table_schema='public' 

Diese Abfrage gibt aber auch Views zurück.

Wie kann ich nur Tabellennamen erhalten, keine Ansichten?

153
jobi88

Was ist mit dieser Abfrage (basierend auf der Beschreibung von manuell )?

SELECT table_name
  FROM information_schema.tables
 WHERE table_schema='public'
   AND table_type='BASE TABLE';
259
vyegorov

Wenn Sie eine Liste der Datenbanken wünschen

SELECT datname FROM pg_database WHERE datistemplate = false;

Wenn Sie eine Liste der Tabellen aus der aktuellen PG-Installation aller Datenbanken wünschen

SELECT table_schema,table_name FROM information_schema.tables
ORDER BY table_schema,table_name;
34
Harsh

Öffnen Sie das Postgres-Terminal mit der gewünschten Datenbank:

psql dbname (run this line in a terminal)

führen Sie dann diesen Befehl in der postgres-Umgebung aus

\d

Dies beschreibt alle Tabellen nach Namen. Grundsätzlich eine Liste von Tabellen nach Namen aufsteigend.

Dann können Sie dies versuchen, um eine Tabelle nach Feldern zu beschreiben:

\d tablename.

Hoffe das hilft.

26
Ty93
select 
 relname as table 
from 
 pg_stat_user_tables 
where schemaname = 'public'

select 
  tablename as table 
from 
  pg_tables  
where schemaname = 'public'
6
Vivek S.

Wie wäre es, wenn Sie nur \dt in psql? Siehe https://www.postgresql.org/docs/current/static/app-psql.html .

6
Baris Demiray

Versuche dies:

SELECT table_name 
FROM information_schema.tables 
WHERE table_schema='public' AND table_type='BASE TABLE'

dieser funktioniert!

2
T.S.