34.6. attributes

视图attributes包含有关在数据库中定义的复合数据类型的属性信息。 (注意,视图不会提供表字段的信息,在PostgreSQL环境中有时被叫做属性。) 只有当前用户有权限时才显示这些属性(通过成为它的所有者或者在这个类型上有某些权限)。

表 34-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 如果属性可能为空则为YES,如果不为空则为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识别一个字符类型, 那么最大可能长度在一个数据的字节(bytes)中;对于所有其它的数据类型为null。 最大的字节长度取决于声明的字符最大长度(参考上文)和服务器的编码。
character_set_catalogsql_identifierPostgreSQL中的不适用特性
character_set_schemasql_identifierPostgreSQL中的不适用特性
character_set_namesql_identifierPostgreSQL中的不适用特性
collation_catalogsql_identifier 包含属性排序规则的数据库名称(总是当前数据库), 缺省或属性的数据类型不可排序时为null。
collation_schemasql_identifier 包含属性排序规则的模式名,缺省或属性的数据类型不可排序时为null。
collation_namesql_identifier 属性的排序规则的名称,缺省或属性的数据类型不可排序时为null。
numeric_precisioncardinal_number 如果data_type标识一个数字类型,那么该字段 (隐含地或者公开地)包含属性类型的精度。该精度表明了有效数字的位数。 它可以用在十进制(base 10)或者二进制(base 2)中,按照说明在字段 numeric_precision_radix中。对于所有其它的数据类型,该字段为null。
numeric_precision_radixcardinal_number 如果data_type标识一个数字类型,该字段表明基于字段 numeric_precision和字段numeric_scale中的值。 值要么是2要么是10. 对于所有其它的数据类型,字段是null。
numeric_scalecardinal_number 如果data_type标识一个精确的数字类型,那么该字段 (公开地或隐含地)包含属性类型的数值范围。该数值范围表明了小数点右边有效数字位数。 它可以用在十进制(base 10)或者二进制(base 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_numberPostgreSQL中的不适用特性 (参阅datetime_precision获取间隔类型属性的小数秒精度)
attribute_udt_catalogsql_identifier 属性数据类型被指定的数据库名(总是在当前数据库中)
attribute_udt_schemasql_identifier 属性数据类型被指定的模式名称
attribute_udt_namesql_identifier 属性数据类型名称
scope_catalogsql_identifierPostgreSQL中的不适用特性
scope_schemasql_identifierPostgreSQL中的不适用特性
scope_namesql_identifierPostgreSQL中的不适用特性
maximum_cardinalitycardinal_number总是null,因为在PostgreSQL中数组的最大基数总是不受限
dtd_identifiersql_identifier 字段的数据类型描述符的一个标示符,在表格的数据类型描述符中是唯一的。 这个对于加入其它的这样的标示符的实例是主要有用的。 (标示符的特定格式没有指定且也不保证在以后的版本中不会改变)
is_derived_reference_attributeyes_or_noPostgreSQL中的不适用特性

也可以在第 34.16 节中查阅,一个类似的结构视图,一些字段的进一步详细信息。