历史版本。 PostgreSQL 9.2 已结束支持。 2017-11-09. 请参阅 当前版本手册.
34.6. attributes #
视图attributes包含数据库中定义的组合数据类型的属性信息。(注意,该视图不提供表列的信息,而表列在 PostgreSQL 的语境中有时也被称为属性。)只有当前用户能够访问的那些属性才会显示出来(通过拥有该类型或拥有其上的某种权限)。
表 34.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,否则为NO。
|
data_type | character_data | 如果该属性是一个内置类型,此列值为该属性的数据类型;如果该属性是某种数组,此列值为ARRAY(在这种情况下,见视图element_types);其他情况,此列值为USER-DEFINED(在这种情况下,该类型在attribute_udt_name和相关列中标识)。
|
character_maximum_length | cardinal_number | 如果data_type标识字符类型或位串类型,这里是声明的最大长度;如果未声明最大长度,或者对于所有其他数据类型,则为空。
|
character_octet_length | cardinal_number | 如果data_type标识字符类型,这里是一个数据值可能的最大字节长度;对于所有其他数据类型则为空。最大字节长度取决于声明的字符最大长度(见上文)和服务器编码。
|
character_set_catalog | sql_identifier | 对应 PostgreSQL 不支持的特性 |
character_set_schema | sql_identifier | 对应 PostgreSQL 不支持的特性 |
character_set_name | sql_identifier | 对应 PostgreSQL 不支持的特性 |
collation_catalog | sql_identifier | 包含该属性排序规则的数据库名称(总是当前数据库);如果使用默认排序规则,或该属性的数据类型不支持排序规则,则为 null。 |
collation_schema | sql_identifier | 包含该属性排序规则的模式名称;如果使用默认排序规则,或该属性的数据类型不支持排序规则,则为 null。 |
collation_name | sql_identifier | 该属性排序规则的名称;如果使用默认排序规则,或该属性的数据类型不支持排序规则,则为 null。 |
numeric_precision | cardinal_number | 如果data_type标识一种数字类型,这列包含这个属性类型的(声明的或隐式的)精度。精度指示了有效位数。它可以按照列numeric_precision_radix中指定的被表示为十进制(基于 10)或二进制(基于 2)。对于所有其他数据类型,这一列为空。
|
numeric_precision_radix | cardinal_number | 如果data_type标识一种数字类型,这一列指示numeric_precision和numeric_scale列中的值是基于什么来表示。该值为 2 或 10。对于所有其他数据类型,这一列为空。
|
numeric_scale | cardinal_number | 如果data_type标识精确数字类型,这一列包含该属性类型的标度(声明的或隐式的)。标度表示小数点右侧的有效数字位数。它可以按列numeric_precision_radix的指定表示为十进制(基数 10)或二进制(基数 2)。对于所有其他数据类型,这一列为空。
|
datetime_precision | cardinal_number | 如果data_type标识一种日期、时间、时间戳或时间间隔类型,这一列包含这个属性类型的(声明的或隐式的)分数秒的精度,也就是秒值的小数点后的十进制位数。对于所有其他数据类型,这一列为空。
|
interval_type | character_data | 如果data_type标识一种时间间隔类型,这一列包含时间间隔为这个属性包括哪些域的声明,例如YEAR TO MONTH、DAY TO SECOND等等。如果没有指定域限制(也就是该时间间隔接受所有域),并且对于所有其他数据类型,这个域为空。
|
interval_precision | cardinal_number | 对应 PostgreSQL 不支持的特性(关于 interval 类型属性的分数秒精度,见datetime_precision)
|
attribute_udt_catalog | sql_identifier | 属性数据类型被定义的数据库名(总是当前数据库) |
attribute_udt_schema | sql_identifier | 属性数据类型被定义的模式名 |
attribute_udt_name | sql_identifier | 属性数据类型的名称 |
scope_catalog | sql_identifier | 对应 PostgreSQL 不支持的特性 |
scope_schema | sql_identifier | 对应 PostgreSQL 不支持的特性 |
scope_name | sql_identifier | 对应 PostgreSQL 不支持的特性 |
maximum_cardinality | cardinal_number | 总是为空,因为 PostgreSQL 中数组的最大基数始终不受限制 |
dtd_identifier | sql_identifier | 该列的数据类型描述符的一个标识符,在从属于该表的数据类型标识符之中唯一。这主要用于与这类标识符的其他实例进行连接(该标识符的指定格式没有被定义并且不保证在未来的版本中保持相同)。 |
is_derived_reference_attribute | yes_or_no | 对应 PostgreSQL 不支持的特性 |
关于某些列的详情,参见第 34.16 节之下的一个相似结构的视图。