設計者がつけるテーブルの論理名もしくはコメントの一覧を抽出する方法
CREATE TABLE 文で設計者が命名するテーブル論理名を付けるのは見たことがなく
COMMENT ON TABLE 対象テーブル IS 'コメント’ ;
でコメントを付与しているであろう。
テーブル名とコメントの一覧を抽出するクエリは、以下となる。
SELECT a.table_name, b.description FROM information_schema.TABLES a LEFT JOIN ( SELECT c.relname, d.description FROM pg_class c INNER JOIN pg_description d ON c.oid = d.objoid AND d.objsubid = 0 ) b ON a.table_name = b.relname WHERE a.table_type = 'BASE TABLE' AND a.table_schema = 'public' ORDER BY a.table_name ASC
コメントを付与していないテーブルは、description が NULL である。
もしくは、ユーザテーブルのみ、限定すれば、pg_stat_user_tables を使えば簡単で、
SELECT a.relname AS table_name, b.description FROM pg_stat_user_tables a LEFT JOIN pg_description b ON a.relid = b.objoid AND b.objsubid = 0 WHERE a.schemaname = 'public' ORDER BY a.relname ASC
でもよい。