Postgresql 中文操作指南

37.6. attributes #

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

Table 37.4. attributes Columns

Column Type

Description

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 时)。

data_type character_data 属性的数据类型,如果是内置类型,则为 ARRAY ;如果是数组,则为 @{s22)(在这种情况下,请参见视图 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 标识数字类型,则此列包含此属性类型的(声明或隐式)精度。精度表示有效数字的位数。它可以根据列 numeric_precision_radix 中的说明,以十进制(基数 10)或二进制(基数 2)表示。对于所有其他数据类型,此列为 null。

numeric_precision_radix cardinal_number 如果 data_type 标识数值类型,则此列显示 numeric_precisionnumeric_scale 列中值的表达基数。值为 2 或 10。对于所有其他数据类型,此列为 null。

numeric_scale cardinal_number 如果 data_type 标识精确数字类型,则此列包含此属性类型的(声明或隐式)比例。比例表示小数点右侧有效数字的位数。它可以根据列 numeric_precision_radix 中的说明,以十进制(基数 10)或二进制(基数 2)表示。对于所有其他数据类型,此列为 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 中不可用的功能

另请参阅 Section 37.17,这是一个同样结构化的视图,以进一步了解其中部分列。