web-dev-qa-db-ja.com

すべてのテーブル名をリストするPostgreSQLのクエリ?

私のPostgres DBの全てのテーブルを一覧表示するために利用できるクエリはありますか?.

私は一つのクエリを試してみました:

SELECT table_name FROM information_schema.tables
                      WHERE table_schema='public' 

しかし、このクエリはビューも返します。

ビューではなく、テーブル名のみを取得する方法を教えてください。

145
jobi88

このクエリの内容は何ですか( manual の説明に基づく)?

SELECT table_name
  FROM information_schema.tables
 WHERE table_schema='public'
   AND table_type='BASE TABLE';
248
vyegorov

データベースのリストが欲しいなら

SELECT datname FROM pg_database WHERE datistemplate = false;

すべてのデータベースの現在のpgインストールからのテーブルのリストが欲しいなら

SELECT table_schema,table_name FROM information_schema.tables
ORDER BY table_schema,table_name;
33
Harsh

あなたが望むデータベースでpostgres端末を開いてください:

psql dbname (run this line in a terminal)

その後、postgres環境でこのコマンドを実行してください。

\d

これはすべてのテーブルを名前で説明します。基本的には名前の昇順のテーブルのリストです。

それからこれを試して、フィールドでテーブルを記述することができます。

\d tablename.

お役に立てれば。

26
Ty93
select 
 relname as table 
from 
 pg_stat_user_tables 
where schemaname = 'public'

select 
  tablename as table 
from 
  pg_tables  
where schemaname = 'public'
6
Vivek S.

psql\dtだけを指定してはどうですか? https://www.postgresql.org/docs/current/static/app-psql.html を参照してください。

6
Baris Demiray

これを試して:

SELECT table_name 
FROM information_schema.tables 
WHERE table_schema='public' AND table_type='BASE TABLE'

これはうまくいく!

1
T.S.