このエントリーをはてなブックマークに追加


テーブル一覧およびテーブルコメントを表示する

PostgreSQLでテーブルを作成し、そのテーブルにコメントを付けている場合、
本資料で紹介するSQLにより、テーブル名とコメントの一覧を出力することができます。

テーブルにコメントを付けている方も多い?と思いますので、物理名とコメントに論理名(和名?)を表示するSQLを紹介します。


スポンサーリンク

テーブル一覧およびコメント表示SQL

以下のSQLにより、テーブル名とテーブルに設定されたコメントを表示することができます。

select
	 pg_stat_user_tables.relname as TABLE_NAME
	,pg_description.description as TABLE_COMMENT
from
	 pg_stat_user_tables
	,pg_description
where
	pg_stat_user_tables.relname in (
		select 
			relname as TABLE_NAME
		from 
			pg_stat_user_tables
	)
	and
	pg_stat_user_tables.relid=pg_description.objoid
	and
	pg_description.objsubid=0
;

実行例

コメント付きのテーブルを作成し、上記のSQLを実行した出力結果です。

  1. 空のデータベースにテーブルt1, t2を作成します。
    sakuradb=> CREATE TABLE t1 (c1 int);
    CREATE TABLE
    sakuradb=> CREATE TABLE t2 (c1 int, c2 int);
    CREATE TABLE
  2. 作成したテーブルを確認します。
    sakuradb=> \d
           List of relations
     Schema | Name | Type  | Owner
    --------+------+-------+--------
     public | t1   | table | sakura
     public | t2   | table | sakura
    (2 rows)
  3. テーブルにコメントを設定します。
    sakuradb=> COMMENT ON TABLE t1 IS 'テーブル1';
    COMMENT
    sakuradb=> COMMENT ON TABLE t2 IS 'テーブル2';
    COMMENT
  4. 上記で紹介したSQLを実行します。
    sakuradb=> select
    sakuradb-> pg_stat_user_tables.relname as TABLE_NAME
    sakuradb-> ,pg_description.description as TABLE_COMMENT
    sakuradb-> from
    sakuradb-> pg_stat_user_tables
    sakuradb-> ,pg_description
    sakuradb-> where
    sakuradb-> pg_stat_user_tables.relname in (
    sakuradb(> select
    sakuradb(> relname as TABLE_NAME
    sakuradb(> from
    sakuradb(> pg_stat_user_tables
    sakuradb(> )
    sakuradb-> and
    sakuradb-> pg_stat_user_tables.relid=pg_description.objoid
    sakuradb-> and
    sakuradb-> pg_description.objsubid=0
    sakuradb-> ;
     table_name | table_comment
    ------------+---------------
     t1         | テーブル1
     t2         | テーブル2
    (2 rows)

以上、テーブル名とテーブルに設定したコメントを一覧にして出力するSQLの紹介でした。


スポンサーリンク


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-02-28 (火) 13:22:31 (451d)