web-dev-qa-db-fra.com

Comment répertorier tous les schémas dans PostgreSQL?

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;
267
Stéphane

Pour répertorier tous les schémas, utilisez la norme (ANSI) INFORMATION_SCHEMA

select schema_name
from information_schema.schemata;

Plus de détails dans le manuel

alternativement:

select nspname
from pg_catalog.pg_namespace;

Plus de détails sur pg_catalog dans le manuel

280

Lorsque vous utilisez la ligne de commande psql, vous pouvez répertorier tous les schémas avec la commande \dn.

274
eppesuig

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-

  1. 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.

40
Bhabatosh Bera

À 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;
12
Soni Harriz