PostgreSQL v9.1を使用している場合、SQLを使用してすべてのスキーマを一覧表示するにはどうすればよいですか?
私は次の線に沿って何かを期待していました:
SELECT something FROM pg_blah;
psql
コマンドラインを使用する場合、コマンド\dn
を使用してすべてのスキーマを一覧表示できます。
Psqlコマンドに接続します-> psql --u {userName} {DBName}次に以下のコマンドを入力して、DBに存在するスキーマの数を確認できます
DBName=# \dn
または、以下の手順で構文を簡単に確認できます-
DBに接続した後、
DBName=# help
以下のオプションが表示されます。
PostgreSQLのコマンドラインインターフェースであるpsqlを使用しています。
タイプ:配布条件の\ copyright
\h SQLコマンドのヘルプ
\? psqlコマンドのヘルプ
\gまたはセミコロンで終了してクエリを実行します
\q終了します
次に押す
DBName=# \?
あなたは非常に簡単にすべてのオプションを取得します。
Postgres 9.3以降、psqlで情報コマンド(\ d、\ du、\ dpなど)の正確なsqlを取得するためにpostgresで使用できる1つのトリックは、トランザクションを使用することです。トリックはここにあります。 1つの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;