Lors de l'utilisation de PostgreSQL v9.1, comment répertorier tous les schémas utilisant SQL?
Je m'attendais à quelque chose du genre:
SELECT something FROM pg_blah;
Lorsque vous utilisez la ligne de commande psql
, vous pouvez répertorier tous les schémas avec la commande \dn
.
Connectez-vous à la commande psql -> psql --u {userName} {DBName} puis vous pouvez taper la commande ci-dessous pour vérifier combien de schémas sont présents dans la base de données
DBName=# \dn
Sinon, vous pouvez vérifier la syntaxe par les étapes ci-dessous facilement-
Après avoir connecté la DB, appuyez sur
DBName=# help
Vous obtiendrez les options ci-dessous:
Vous utilisez psql, l'interface de ligne de commande de PostgreSQL.
Tapez:\copyright pour les conditions de distribution
\h pour obtenir de l'aide sur les commandes SQL
\? pour obtenir de l'aide sur les commandes psql
\g ou se terminent par un point-virgule pour exécuter la requête
\q pour quitter
Puis appuyez
DBName=# \?
Vous obtiendrez toutes les options très facilement.
À partir de postgres 9.3, une astuce que vous pouvez utiliser dans postgres pour obtenir le sql exact de la commande d'information (comme\d,\du,\dp, etc.) dans psql consiste à utiliser une transaction. Voici comment ça se passe. Ouvrez une session postgres, puis tapez votre commande:
begin;
\dn+
Pendant que la transaction est toujours en cours d'exécution, ouvrez une autre session postgres et interrogez pg_stat_activity et vous pouvez obtenir le sql exact.
postgres=# select query from pg_stat_activity ;
query
-----------------------------------------------------------------------
SELECT n.nspname AS "Name", +
pg_catalog.pg_get_userbyid(n.nspowner) AS "Owner", +
pg_catalog.array_to_string(n.nspacl, E'\n') AS "Access privileges",+
pg_catalog.obj_description(n.oid, 'pg_namespace') AS "Description" +
FROM pg_catalog.pg_namespace n +
WHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema' +
ORDER BY 1;