37.6. attributes

视图attributes包含数据库中定义的组合数据类型的属性的有关信息(注意该视图并不给出有关表列的信息,表列有时候在 PostgreSQL 上下文环境中也被称为属性)。只有当前用户能够访问(由于是拥有者获得的权限或是在类型上有某些特权)的那些属性会被显示。

表 37.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 包含此属性排序规则的数据库名(总是当前数据库),如果默认或者该属性的数据类型不可排序则为空
collation_schema sql_identifier 包含此属性排序规则的模式名,如果默认或者该属性的数据类型不可排序则为空
collation_name sql_identifier 该属性排序规则的名称,如果默认或者该属性的数据类型不可排序则为空
numeric_precision cardinal_number 如果data_type标识一种数字类型,这列包含这个属性类型的(声明的或隐式的)精度。精度指示了有效位数。它可以按照列numeric_precision_radix中指定的被表示为十进制(基于 10)或二进制(基于 2)。对于所有其他数据类型,这一列为空。
numeric_precision_radix cardinal_number 如果data_type标识一种数字类型,这一列指示numeric_precisionnumeric_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 MONTHDAY TO SECOND等等。如果没有指定域限制(也就是该时间间隔接受所有域),并且对于所有其他数据类型,这个域为空。
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 总是空,因为数组在PostgreSQL中总是有无限制的最大势
dtd_identifier sql_identifier 该列的数据类型描述符的一个标识符,在从属于该表的数据类型标识符之中唯一。这主要用于与这类标识符的其他实例进行连接(该标识符的指定格式没有被定义并且不保证在未来的版本中保持相同)。
is_derived_reference_attribute yes_or_no 应用于一个PostgreSQL中不可用的特性

关于某些列的详情,参见第 37.16 节之下的一个相似结构的视图。