pg_attrdefシステムカタログは列のデフォルト値を格納します。列の主要な情報はpg_attributeに格納されています(下記を参照)。(テーブルが作成された時、もしくは列が追加された時に)デフォルト値を明示的に特定した列のみここにエントリを持ちます。
表 44-6. pg_attrdefの列
名前 | 型 | 参照先 | 説明 |
---|---|---|---|
adrelid | oid | pg_class.oid | この列が属するテーブル |
adnum | int2 | pg_attribute.attnum | 列数 |
adbin | text | 列のデフォルト値の内部表現 | |
adsrc | text | 人間が見てわかるデフォルト値の表現 |
adsrcフィールドは歴史的なもので使用しない方が良いでしょう。この値は、デフォルト値の表現に影響を与える外部の変化を追跡しないからです。
デフォルト値を表示するには、(例えばpg_get_expr
を使った)adbinフィールドの逆コンパイルが、良い方法です。