237

Postgres DB 内のすべてのテーブルを一覧表示するクエリはありますか?

次のようなクエリを 1 つ試しました。

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

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

ビューではなく、テーブル名のみを取得するにはどうすればよいですか?

4

7 に答える 7

387

このクエリは(マニュアルの説明に基づいて)どのようになりますか?

SELECT table_name
  FROM information_schema.tables
 WHERE table_schema='public'
   AND table_type='BASE TABLE';
于 2013-02-06T13:47:22.047 に答える
42

データベースの一覧が欲しい場合

SELECT datname FROM pg_database WHERE datistemplate = false;

すべてのデータベースの現在の pg インストールからのテーブルのリストが必要な場合

SELECT table_schema,table_name FROM information_schema.tables
ORDER BY table_schema,table_name;
于 2015-02-27T09:10:06.853 に答える
9
select 
 relname as table 
from 
 pg_stat_user_tables 
where schemaname = 'public'
  • track_activitiesが無効になっている場合、これは機能しません

select 
  tablename as table 
from 
  pg_tables  
where schemaname = 'public'
于 2014-10-13T11:36:16.127 に答える