PostgreSQLでテーブルやカラムのコメントをSQLで取得する方法

記事内に広告が含まれています。

PostgreSQLではテーブルやカラムに対してコメントを設定することができます。

ちなみにコメントを設定するには「COMMENT」コマンドを利用します。

PostgreSQLでテーブルやカラムにコメントを設定する方法
PostgreSQLでテーブルやカラムにSQLでコメントを設定するには「COMMENT」コマンドを利用します。どちらの場合もコメントを削除する場合は設定する値にNULLを設定することで削除することができます。

この記事では設定したテーブルやカラムのコメントをSQLで取得する方法を解説します。

PostgreSQLのテーブルコメントをSQLで取得する

PostgreSQLのテーブルコメントをSQLで取得するにはPostgreSQLカタログの「pg_description」テーブルを参照します。

実際のSQLは以下のようになります。

SELECT
     pg_stat_user_tables.relname AS table_name
    ,pg_description.description AS 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
    AND pg_stat_user_tables.schemaname=current_schema()
ORDER BY
    table_name

上記のSQLを実行すると現在のスキーマで登録されているテーブルコメントの一覧が取得できます。

PostgreSQLのカラムコメントをSQLで取得する

PostgreSQLのカラムコメントをSQLで取得するにはテーブルコメントと同様にPostgreSQLカタログの「pg_description」テーブルを参照します。

実際のSQLは以下のようになります。

SELECT
     a.table_name AS table_name
    ,a.column_name AS column_name
    ,a.data_type AS data_type
    ,a.comment AS comment
FROM
    (
        SELECT
             pg_stat_user_tables.relname AS table_name
            ,information_schema.columns.column_name AS column_name
            ,information_schema.columns.data_type AS data_type
            ,(
                SELECT
                    description
                FROM
                    pg_description
                WHERE
                    pg_description.objoid=pg_stat_user_tables.relid
                    AND pg_description.objsubid=information_schema.columns.ordinal_position
            ) AS comment
        FROM
             pg_stat_user_tables
            ,information_schema.columns
        WHERE
            pg_stat_user_tables.relname=information_schema.columns.table_name
            AND pg_stat_user_tables.schemaname=current_schema()
    ) AS a
WHERE
    a.comment IS NOT NULL
ORDER BY
    a.table_name

上記のSQLを実行すると現在のスキーマで登録されているカラムコメントの一覧が取得できます。

まとめ

PostgreSQLのテーブルコメントやカラムコメントをSQLで取得するにはPostgreSQLカタログの「pg_description」テーブルを参照します。

SQLServerの場合は以下の記事を参照してください。

SQLServerのテーブルやカラムにコメントをつける方法
SQLServerで作成したテーブルやカラムにコメントをつけれないか調べたところ、sys.sp_addextendedpropertyを使えばコメントをつけれます。
タイトルとURLをコピーしました