37.6. attributes
Представление attributes
содержит информацию об атрибутах составных типов данных, определённых в базе. (Заметьте, что представление не даёт информацию о столбцах таблицы, которые иногда называются атрибутами в контекстах Postgres Pro.) В нём показываются только те атрибуты, к которым имеет доступ текущий пользователь (являясь владельцем или имея некоторое право для использования типа).
Таблица 37.4. Столбцы attributes
Имя | Тип данных | Описание |
---|---|---|
udt_catalog | sql_identifier | Имя базы данных, содержащей тип данных (всегда текущая база) |
udt_schema | sql_identifier | Имя схемы, содержащей тип данных |
udt_name | sql_identifier | Имя типа данных |
attribute_name | sql_identifier | Имя атрибута |
ordinal_position | cardinal_number | Порядковый номер атрибута внутри типа данных (нумерация начинается с 1) |
attribute_default | character_data | Выражение по умолчанию для атрибута |
is_nullable | yes_or_no | YES , если атрибут может содержать NULL, или NO , если он не принимает NULL |
тип_данных | character_data | Тип данных атрибута, если это встроенный тип, либо ARRAY , если это массив (в этом случае обратитесь к представлению element_types ), иначе — USER-DEFINED (в этом случае тип определяется в attribute_udt_name и связанных столбцах). |
character_maximum_length | cardinal_number | Если в data_type указан тип текстовой или битовой строки, это поле задаёт её объявленную максимальную длину; NULL для всех других типов данных, либо если максимальная длина не объявлена. |
character_octet_length | cardinal_number | Если в data_type указан тип символьной строки, это поле задаёт её максимально возможный размер в октетах (байтах); NULL для всех других типов данных. Максимальный размер в октетах зависит от объявленной максимальной длины в символах (см. выше) и от кодировки сервера. |
character_set_catalog | sql_identifier | Относится к функциональности, отсутствующей в Postgres Pro |
character_set_schema | sql_identifier | Относится к функциональности, отсутствующей в Postgres Pro |
character_set_name | sql_identifier | Относится к функциональности, отсутствующей в Postgres Pro |
collation_catalog | sql_identifier | Имя базы данных, содержащей правило сортировки атрибута (это всегда текущая база), либо NULL, если это правило по умолчанию или тип данных атрибута несортируемый |
collation_schema | sql_identifier | Имя схемы, содержащей правило сортировки атрибута, либо NULL, если это правило по умолчанию или тип данных атрибута несортируемый |
collation_name | sql_identifier | Имя правила сортировки атрибута, либо NULL, если это правило по умолчанию или атрибут несортируемый |
numeric_precision | cardinal_number | Если в data_type указан числовой тип, этот столбец содержит точность (объявленную или неявную) типа для этого атрибута. Точность определяет число значащих цифр. Она может выражаться в десятичных (по основанию 10) или двоичных (по основанию 2) цифрах, согласно столбцу numeric_precision_radix . Для всех других типов данных этот столбец содержит NULL. |
numeric_precision_radix | cardinal_number | Если в data_type указан числовой тип, в этом столбце определяется, по какому основанию задаются значения в столбцах numeric_precision и numeric_scale . Возможные варианты: 2 или 10. Для всех других типов данных этот столбец содержит NULL. |
numeric_scale | cardinal_number | Если в data_type указан точный числовой тип, этот столбец содержит масштаб (объявленный или неявный) типа для этого атрибута. Масштаб определяет число значащих цифр справа от десятичной точки. Он может выражаться в десятичных (по основанию 10) или двоичных (по основанию 2) цифрах, согласно столбцу numeric_precision_radix . Для всех других типов данных этот столбец содержит NULL. |
datetime_precision | cardinal_number | Если в data_type указан тип даты, времени, отметки времени или интервала, этот столбец содержит точность (объявленную или неявную) в долях секунды типа этого атрибута, то есть число десятичных цифр, сохраняемых после десятичной точки в значении секунд. Для всех других типов данных этот столбец содержит NULL. |
interval_type | character_data | Если в data_type указан тип интервала, этот столбец определяет, какие поля принимает интервал в этом атрибуте, например: YEAR TO MONTH , DAY TO SECOND и т. д. Если ограничения для полей не заданы (то есть, интервал принимает все поля), и для любых других типов данных это поле содержит NULL. |
interval_precision | cardinal_number | Относится к функциональности, отсутствующей в Postgres Pro (см. поле datetime_precision , определяющее точность в долях секунды для типов интервалов) |
attribute_udt_catalog | sql_identifier | Имя базы данных, в которой определён тип данных атрибута (всегда текущая база) |
attribute_udt_schema | sql_identifier | Имя схемы, в которой определён тип данных атрибута |
attribute_udt_name | sql_identifier | Имя типа данных атрибута |
scope_catalog | sql_identifier | Относится к функциональности, отсутствующей в Postgres Pro |
scope_schema | sql_identifier | Относится к функциональности, отсутствующей в Postgres Pro |
scope_name | sql_identifier | Относится к функциональности, отсутствующей в Postgres Pro |
maximum_cardinality | cardinal_number | Всегда NULL, так как массивы имеют неограниченную максимальную ёмкость в Postgres Pro |
dtd_identifier | sql_identifier | Идентификатор дескриптора типа данных атрибута, уникальный среди всех дескрипторов типа данных, относящихся к составному типу. Он в основном полезен для соединения с другими экземплярами таких идентификаторов. (Конкретный формат идентификатора не определён и не гарантируется, что он останется неизменным в будущих версиях.) |
is_derived_reference_attribute | yes_or_no | Относится к функциональности, отсутствующей в Postgres Pro |
Обратитесь также к описанию Раздел 37.17, представлению с похожей структурой, за дополнительной информацией о некоторых столбцах.