Requête PostgreSQL pour lister tous les noms de tables?

Existe-t-il une requête pour répertorier toutes les tables de mon DB Postgres.

J’ai essayé une requête comme:

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

Mais cette requête renvoie également des vues.

Comment puis-je obtenir uniquement des noms de tables, pas des vues?

Qu’est-ce que cette requête (basé sur la description du manuel )?

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

Si vous voulez une liste de firebase database

 SELECT datname FROM pg_database WHERE datistemplate = false; 

Si vous voulez la liste des tables de l’installation pg actuelle de toutes les bases de données

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

Ouvrez le terminal postgres avec la firebase database que vous souhaitez:

 psql dbname (run this line in a terminal) 

ensuite, lancez cette commande dans l’environnement postgres

 \d 

Cela décrira toutes les tables par leur nom. Fondamentalement, une liste de tables par nom croissant.

Ensuite, vous pouvez essayer ceci pour décrire une table par champs:

 \d tablename. 

J’espère que cela t’aides.

Que diriez-vous de donner simplement \dt en psql ? Voir https://www.postgresql.org/docs/current/static/app-psql.html .

 select relname as table from pg_stat_user_tables where schemaname = 'public' 
  • Cela ne fonctionnera pas si track_activities est désactivé

 select tablename as table from pg_tables where schemaname = 'public' 
  • En savoir plus sur pg_tables

Essaye ça:

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

celui-ci fonctionne!