↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2
历史版本。 PostgreSQL 12 已结束支持。 2024-11-21. 请参阅 当前版本手册.

36.6. attributes #

视图 attributes 包含数据库中定义的复合数据类型的属性信息。(注意,该视图不提供表列的信息,而表列在 PostgreSQL 的语境中有时也称为属性。)只显示当前用户能够访问的属性(作为该类型的拥有者或具有该类型上的某种权限)。

表 36.4. attributes 列

名称数据类型 描述
udt_catalogsql_identifier 包含该数据类型的数据库名称(总是当前数据库)
udt_schemasql_identifier 包含该数据类型的模式名称
udt_namesql_identifier 数据类型名称
attribute_namesql_identifier 属性名称
ordinal_positioncardinal_number 属性在该数据类型内部的顺序位置(从 1 开始计算)
attribute_defaultcharacter_data 该属性的默认表达式
is_nullableyes_or_no 如果该属性可能为 null,则为 YES;如果已知不能为 null,则为 NO。
data_typecharacter_data 如果该属性是一个内置类型,此列值为该属性的数据类型;如果该属性是某种数组,此列值为 ARRAY(在这种情况下,见视图 element_types);其他情况,此列值为 USER-DEFINED(在这种情况下,该类型在 attribute_udt_name 和相关列中标识)。
character_maximum_lengthcardinal_number 如果 data_type 标识字符类型或位串类型,则为声明的最大长度;对于其他所有数据类型,或未声明最大长度时,则为 null。
character_octet_lengthcardinal_number 如果 data_type 标识字符类型,这里是一个数据值可能的最大字节长度;对于所有其他数据类型则为 null。最大字节长度取决于声明的字符最大长度(见上文)和服务器编码。
character_set_catalogsql_identifier 对应 PostgreSQL 不支持的特性
character_set_schemasql_identifier 对应 PostgreSQL 不支持的特性
character_set_namesql_identifier 对应 PostgreSQL 不支持的特性
collation_catalogsql_identifier 包含该属性排序规则的数据库名称(总是当前数据库);如果使用默认排序规则,或该属性的数据类型不支持排序规则,则为 null。
collation_schemasql_identifier 包含该属性排序规则的模式名称;如果使用默认排序规则,或该属性的数据类型不支持排序规则,则为 null。
collation_namesql_identifier 该属性排序规则的名称;如果使用默认排序规则,或该属性的数据类型不支持排序规则,则为 null。
numeric_precisioncardinal_number 如果 data_type 标识数值类型,此列包含该属性数据类型的(声明的或隐式的)精度。精度表示有效位数。它可以按十进制(基数 10)或二进制(基数 2)表示,具体由 numeric_precision_radix 列指定。对于其他所有数据类型,此列为 null。
numeric_precision_radixcardinal_number 如果 data_type 标识数值类型,此列指示 numeric_precision 和 numeric_scale 列中的值采用的进制。值为 2 或 10。对于其他所有数据类型,此列为 null。
numeric_scalecardinal_number 如果 data_type 标识精确数值类型,此列包含该属性数据类型的(声明的或隐式的)小数位数。小数位数表示小数点右侧的有效位数。它可以按十进制(基数 10)或二进制(基数 2)表示,具体由 numeric_precision_radix 列指定。对于其他所有数据类型,此列为 null。
datetime_precisioncardinal_number 如果 data_type 标识日期、时间、时间戳或时间间隔类型,此列包含该属性数据类型的(声明的或隐式的)小数秒精度,即秒值小数点后保留的十进制位数。对于其他所有数据类型,此列为 null。
interval_typecharacter_data 如果 data_type 标识时间间隔类型,此列说明该属性的时间间隔包含哪些字段,例如 YEAR TO MONTH、DAY TO SECOND 等。未指定字段限制时(即时间间隔接受所有字段),或对于其他所有数据类型,此列为 null。
interval_precisioncardinal_number 对应 PostgreSQL 不支持的特性(关于时间间隔类型属性的小数秒精度,参见 datetime_precision)
attribute_udt_catalogsql_identifier 属性数据类型被定义的数据库名(总是当前数据库)
attribute_udt_schemasql_identifier 属性数据类型被定义的模式名
attribute_udt_namesql_identifier 属性数据类型的名称
scope_catalogsql_identifier 对应 PostgreSQL 不支持的特性
scope_schemasql_identifier 对应 PostgreSQL 不支持的特性
scope_namesql_identifier 对应 PostgreSQL 不支持的特性
maximum_cardinalitycardinal_number 总是为 null,因为 PostgreSQL 中数组的最大基数始终不受限制
dtd_identifiersql_identifier 属性的数据类型描述符标识符,它在与该复合类型相关的数据类型描述符中是唯一的。这主要有助于与其他此类标识符实例进行连接。(该标识符的具体格式没有定义,也不保证在未来版本中保持不变。)
is_derived_reference_attributeyes_or_no 对应 PostgreSQL 不支持的特性

关于某些列的详细信息,也可参见结构相似的视图第 36.17 节中的说明。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.