Ответы:
Чтобы получить список всех схем, используйте стандарт (ANSI) INFORMATION_SCHEMA
select schema_name
from information_schema.schemata;
Подробнее в руководстве
альтернативно:
select nspname
from pg_catalog.pg_namespace;
Подробнее о pg_catalog в руководстве
При использовании psql
командной строки вы можете перечислить всю схему с помощью команды \dn
.
\dn
списки, в отличие от таблиц, которые \dt
списки?
\dt
перечисляет таблицы для общедоступной схемы. Чтобы показать таблицы всех схем использования \dt *.*
и для конкретной схемы использования \dt schema_name.*
.
Подключитесь к команде psql -> psql --u {userName} {DBName}, затем введите следующую команду, чтобы проверить, сколько схем присутствует в БД
DBName=# \dn
В противном случае вы можете легко проверить синтаксис с помощью следующих шагов:
После подключения БД нажмите
DBName=# help
Вы получите следующие варианты:
Вы используете psql, интерфейс командной строки для PostgreSQL.
Введите: \ copyright для условий распространения
\ h для получения справки по командам SQL
\? для получения справки по командам psql
\ g или завершите их точкой с запятой для выполнения запроса
\ q для выхода
Затем нажмите
DBName=# \?
Вы получите все варианты очень легко.
Начиная с postgres 9.3, один прием, который вы можете использовать в postgres для получения точного sql информационной команды (такой как \ d, \ du, \ dp и т. Д.) В psql, заключается в использовании транзакции. Вот как трюк идет. Откройте один сеанс postgres, затем введите команду:
begin;
\dn+
Пока транзакция все еще выполняется, откройте другой сеанс postgres и запросите pg_stat_activity, и вы сможете получить точный sql.
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;
\set ECHO_HIDDEN on
psql -E