48.6. pg_attrdef

В каталоге pg_attrdef хранятся значения колонок по умолчанию. Основная информация о колонках хранится в pg_attribute (см. ниже). В этой таблице записи будут только для тех колонок, для которых явно задаётся значение по умолчанию (при создании таблицы или добавлении колонки).

Таблица 48-6. Колонки pg_attrdef

ИмяТипСсылкиОписание
oidoid Идентификатор строки (скрытый атрибут; должен выбираться явно)
adrelidoidpg_class.oidТаблица, к которой принадлежит колонка
adnumint2pg_attribute.attnumНомер колонки
adbinpg_node_tree Внутреннее представление значения колонки по умолчанию
adsrctext Понятное человеку представление значения по умолчанию

Поле adsrc присутствует по исторически причинам, его не стоит использовать, так как в нём не отражаются внешние факторы, способные повлиять на представление значения по умолчанию. Для отображения значения по умолчанию лучше декомпилировать поле adbin (применив, например pg_get_expr ).

48.6. pg_attrdef

The catalog pg_attrdef stores column default values. The main information about columns is stored in pg_attribute (see below). Only columns that explicitly specify a default value (when the table is created or the column is added) will have an entry here.

Table 48-6. pg_attrdef Columns

NameTypeReferencesDescription
oidoid Row identifier (hidden attribute; must be explicitly selected)
adrelidoidpg_class.oidThe table this column belongs to
adnumint2pg_attribute.attnumThe number of the column
adbinpg_node_tree The internal representation of the column default value
adsrctext A human-readable representation of the default value

The adsrc field is historical, and is best not used, because it does not track outside changes that might affect the representation of the default value. Reverse-compiling the adbin field (with pg_get_expr for example) is a better way to display the default value.

FAQ