36.23. element_types

视图element_types包含数组元素的数据类型 Descriptors。当表列,复合类型属性,域,函数参数或函数返回值定义为数组类型时,相应的信息模式视图在data_type列中仅包含ARRAY。要获取有关数组元素类型的信息,可以将相应的视图与此视图连接。例如,要显示具有数据类型和数组元素类型的表的列(如果适用),您可以执行以下操作:

SELECT c.column_name, c.data_type, e.data_type AS element_type
FROM information_schema.columns c LEFT JOIN information_schema.element_types e
     ON ((c.table_catalog, c.table_schema, c.table_name, 'TABLE', c.dtd_identifier)
       = (e.object_catalog, e.object_schema, e.object_name, e.object_type, e.collection_type_identifier))
WHERE c.table_schema = '...' AND c.table_name = '...'
ORDER BY c.ordinal_position;

该视图仅包括当前用户(作为所有者或具有某些特权)有权访问的对象。

表 36.21. element_types

Name Data Type Description
object_catalog sql_identifier 包含使用所描述数组的对象的数据库的名称(始终为当前数据库)
object_schema sql_identifier 包含使用所描述数组的对象的模式名称
object_name sql_identifier 使用所描述的数组的对象的名称
object_type character_data 描述了使用该数组的对象的类型:TABLE(该数组用于该表的列),USER-DEFINED TYPE(该数组由该复合类型的属性使用),DOMAIN(该数组用于该域),ROUTINE(该数组由该函数的参数或返回数据类型使用)。
collection_type_identifier sql_identifier 描述的数组的数据类型 Descriptors 的标识符。使用它可以与其他信息架构视图的dtd_identifier列联接。
data_type character_data 数组元素的数据类型(如果是内置类型),否则为USER-DEFINED(在这种情况下,该类型在udt_name和关联的列中标识)。
character_maximum_length cardinal_number 始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
character_octet_length cardinal_number 始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
character_set_catalog sql_identifier 适用于 PostgreSQL 中不可用的功能
character_set_schema sql_identifier 适用于 PostgreSQL 中不可用的功能
character_set_name sql_identifier 适用于 PostgreSQL 中不可用的功能
collation_catalog sql_identifier 包含元素类型排序规则的数据库的名称(总是当前数据库),如果默认或元素的数据类型不可排序,则为 null
collation_schema sql_identifier 包含元素类型的排序规则的模式名称,如果默认或元素的数据类型不可排序,则为 null
collation_name sql_identifier 元素类型的归类名称,如果默认或元素的数据类型不可归类,则为 null
numeric_precision cardinal_number 始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
numeric_precision_radix cardinal_number 始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
numeric_scale cardinal_number 始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
datetime_precision cardinal_number 始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
interval_type character_data 始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
interval_precision cardinal_number 始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
domain_default character_data 尚未实现
udt_catalog sql_identifier 定义元素的数据类型的数据库的名称(总是当前数据库)
udt_schema sql_identifier 在其中定义元素的数据类型的模式的名称
udt_name sql_identifier 元素的数据类型名称
scope_catalog sql_identifier 适用于 PostgreSQL 中不可用的功能
scope_schema sql_identifier 适用于 PostgreSQL 中不可用的功能
scope_name sql_identifier 适用于 PostgreSQL 中不可用的功能
maximum_cardinality cardinal_number 始终为 null,因为数组在 PostgreSQL 中始终具有无限的最大基数
dtd_identifier sql_identifier 元素的数据类型 Descriptors 的标识符。目前这没有用。
上一章 首页 下一章