2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本: devel
不支持的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2

35.6. attributes #

视图 attributes 包含有关数据库中定义的复合数据类型的属性的信息。(请注意,此视图不提供有关表列的信息,表列有时在 PostgreSQL 上下文中也称为属性。)仅显示当前用户有权访问的属性(通过拥有该类型或对该类型具有某些权限)。

表 35.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 标识了字符或位串类型,则为声明的最大长度;对于所有其他数据类型或未声明最大长度的情况,则为 NULL。

character_octet_length cardinal_number

如果 data_type 标识了字符类型,则为数据的最大可能长度(以字节为单位);对于所有其他数据类型,则为 NULL。最大字节长度取决于声明的字符最大长度(如上所示)和服务器编码。

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 标识了数字类型,则此列包含该属性的类型的(声明的或隐式的)精度。精度表示有效数字的数量。它可以以十进制(基数 10)或二进制(基数 2)表示,如 numeric_precision_radix 列中所指定。对于所有其他数据类型,此列为 NULL。

numeric_precision_radix cardinal_number

如果 data_type 标识了数字类型,则此列指示 numeric_precisionnumeric_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 MONTHDAY TO SECOND 等。如果未指定字段限制(即,间隔接受所有字段),并且对于所有其他数据类型,此字段为 NULL。

interval_precision cardinal_number

适用于 PostgreSQL 中不提供的功能(请参阅 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

始终为 null,因为 PostgreSQL 中的数组始终具有无限的最大基数

dtd_identifier sql_identifier

属性数据类型描述符的标识符,在属于复合类型的描述符中是唯一的。这主要用于与其他此类标识符实例进行连接。(标识符的具体格式未定义,也不保证在未来版本中保持不变。)

is_derived_reference_attribute yes_or_no

PostgreSQL 中不适用的功能


有关某些列的更多信息,请参阅结构类似的视图 35.17 节

提交更正

如果您在文档中看到任何不正确的内容、与您对特定功能的体验不符的内容或需要进一步澄清的内容,请使用 此表单 报告文档问题。