34.18. domains

视图domains包含定义在当前数据库中的所有域。

Table 34-16. domains Columns字段

名字数据类型描述
domain_catalogsql_identifier包含这个域的数据库名(总是当前数据库)
domain_schemasql_identifier包含这个域的模式名
domain_namesql_identifier域的名字
data_typecharacter_data如果这是一个内置类型,就是域的数据类型,如果他是某种数组 (这时, 参阅视图element_types),就是ARRAY。 否则是 USER-DEFINED(这个时候,类型在udt_name和相关的字段里面标识。)
character_maximum_lengthcardinal_number如果域是一个字符或者位串类型,这是定义的最大长度,其它数据类型或者没有声明最大长度,则为空。
character_octet_lengthcardinal_number如果域有一个字符类型,这是最大可能的字节长度;其它所有的数据类型则为null。 最大字节长度取决于所声明的字符最大长度和服务器的编码。
character_set_catalogsql_identifier用于PostgreSQL里一个不可用的特性
character_set_schemasql_identifier用于PostgreSQL里一个不可用的特性
character_set_namesql_identifier用于PostgreSQL里一个不可用的特性
collation_catalogsql_identifier用于PostgreSQL里一个不可用的特性
collation_schemasql_identifier用于PostgreSQL里一个不可用的特性
collation_namesql_identifier用于PostgreSQL里一个不可用的特性
numeric_precisioncardinal_number如果这个域有一个数值类型,那么这个字段包含(声明的或隐含的)用于这个字段的类型精度。 精度表示有效数据位的个数。可以用十进制表示,也可以用二进制表示, 就像在numeric_precision_radix字段里声明的那样。 对于所有其它类型,这个字段是空。
numeric_precision_radixcardinal_number如果这个域有一个数值类型,那么这个字段标识numeric_precisionnumeric_scale字段的数值的基数是多少。 数值要么是 2 要么是 10。对于所有其它数据类型,这个字段是空。
numeric_scalecardinal_number如果这个域有一个准确的数值类型,那么这个字段包含(声明或者隐含的)本字段该类型的比例。 比例标志着小数点右边的有效位数。它可以是用十进制表示,也可以用二进制表示,就像在 numeric_precision_radix字段里声明的那样。对于所有其它数据类型,这个字段是空。
datetime_precisioncardinal_number如果data_type标识一个日期,时间,时间戳,或者间距类型, 该字段(公开地或隐含地)包含部分的属性类型秒精度,就是说,小数位数保持到小数点后面。 对于所有其它的数据类型,该字段是null。
interval_typecharacter_data未实现
interval_precisioncharacter_data未实现
domain_defaultcharacter_data这个域的缺省表达式
udt_catalogsql_identifier域数据类型定义所在的数据库名(总是当前数据库)
udt_schemasql_identifier域数据类型定义所在的模式名
udt_namesql_identifier域数据类型名
scope_catalogsql_identifier用于PostgreSQL里一个不可用的特性
scope_schemasql_identifier用于PostgreSQL里一个不可用的特性
scope_namesql_identifier用于PostgreSQL里一个不可用的特性
maximum_cardinalitycardinal_number总是为空,因为PostgreSQL的数组总是有无限的维数。
dtd_identifiersql_identifier一个该域的数据类型描述符的标识符,在属于该域的所有数据类型描述符 中是唯一的(这个是琐事,因为一个域只包含一种数据类型)。这个主要用于和其它这样的标识符实例连接。 (这个标识符的具体格式没有定义,并且不保证在将来版本中保持一致。)