31.15. domains

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

Table 31-13. domains 字段

名字数据类型描述
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 如果域有一个字符类型,这是最大可能的字节长度(这些应该不是 PostgreSQL 用户要担心的事情); 其它类型都是空。
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 如果该域是一个日期,时间或者时间间隔类型,那么就是声明的精度; 对于其它数据类型或者没有声明精度,那么为空。
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 一个该域的数据类型描述符的标识符,在属于该域的所有数据类型描述符 中是唯一的(这个是琐事,因为一个域只包含一种数据类型)。这个主要 用于和其它这样的标识符实例连接。(这个标识符的具体格式没有定义, 并且不保证在将来版本中保持一致。)