Comment puis-je obtenir les noms des tables sans en-tête ni pied de page ou quoi que ce soit d'autre à partir d'une base de données Postgres spécifiée avec psql? Autrement dit, si j'ai des tables appelées "table1" et "table2" alors la sortie sera:
table1
table2
et seulement ça. J'ai essayé différentes combinaisons de choses, mais il semble que cela devrait être beaucoup plus facile que je ne le fais.
Dans PostgreSQL (comme décrit dans la documentation, The Information Schema ):
SELECT table_name
FROM information_schema.tables
WHERE table_type='BASE TABLE'
AND table_schema='public';
Pour MySQL, vous auriez besoin de table_schema='dbName'
et pour MSSQL, supprimez cette condition.
Notez que "seules les tables et les vues sont affichées que l'utilisateur actuel a accès à". De plus, si vous avez accès à de nombreuses bases de données et que vous souhaitez limiter le résultat à une certaine base de données , vous pouvez y parvenir en ajoutant la condition AND table_catalog='yourDatabase'
(dans PostgreSQL).
Si vous souhaitez également vous débarrasser de l'en-tête affichant les noms des lignes et le pied de page indiquant le nombre de lignes, vous pouvez soit démarrer le psql avec l'option de ligne de commande -t
(court pour --tuples-only
) ou vous pouvez basculer le paramètre dans la ligne de commande de psql par \t
(court pour \pset tuples_only
). Cela peut être utile, par exemple, lorsque vous redirigez la sortie vers une autre commande avec \g [ |command ]
.