Postgresでテーブルのカラム一覧をコメント付きで取得するSQL

Postgresの特定テーブルのカラム一覧は「select * from information_schema.columns」で簡単に取得できるのだが、コメントがついてこない。
コメントは「pg_description」に格納されているが、キーが「objoid」でテーブルを特定し、「objsubid」でカラムを特定するようだ。さきの「information_schema.columns」にて「objsubid」は取得できるので、テーブルは「pg_stat_user_tables」から「objoid」を取得することでコメントの取得が可能。

--指定したテーブルのカラム一覧とコメントを取得するクエリ
select
information_schema.columns.column_name,
information_schema.columns.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
)
from
 pg_stat_user_tables,
 information_schema.columns
where
pg_stat_user_tables.relname='テーブル名'
and pg_stat_user_tables.relname=information_schema.columns.table_name

参考URL:http://www.mediaweb.biz/database/modules/database/article.php?articleid=66

コメント

タイトルとURLをコピーしました