PostgreSQLではテーブルやカラムに対してコメントを設定することができます。
ちなみにコメントを設定するには「COMMENT」コマンドを利用します。
PostgreSQLでテーブルやカラムにコメントを設定する方法
PostgreSQLでテーブルやカラムにSQLでコメントを設定するには「COMMENT」コマンドを利用します。どちらの場...
この記事では設定したテーブルやカラムのコメントを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を使えばコメントをつけれます。