Existe-t-il une requête permettant de répertorier toutes les tables de ma base de données 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 les noms de table, pas les vues?
Qu'est-ce que cette requête (basée sur la description de manuel )?
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public'
AND table_type='BASE TABLE';
Si vous voulez une liste de base de données
SELECT datname FROM pg_database WHERE datistemplate = false;
Si vous voulez une liste des tables de l'installation 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 base de données 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.
select
relname as table
from
pg_stat_user_tables
where schemaname = 'public'
select
tablename as table
from
pg_tables
where schemaname = 'public'
Que diriez-vous de donner simplement \dt
dans psql
? Voir https://www.postgresql.org/docs/current/static/app-psql.html .
Essaye ça:
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public' AND table_type='BASE TABLE'
celui-ci fonctionne!