Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

查询目录表

通常,可将目录表和视图(其名称以 PG_ 开头的关系)联接到 Amazon Redshift 表和视图。

目录表使用了 Amazon Redshift 不支持的大量数据类型。当查询将目录表联接到 Amazon Redshift 表时,支持以下数据类型:

  • bool

  • "char"

  • float4

  • int2

  • int4

  • int8

  • name

  • oid

  • text

  • varchar

如果编写一个显式或隐式引用具有不支持的数据类型的列的联接查询,则该查询将返回一个错误。某些目录表中使用的 SQL 函数也受支持,但 PG_SETTINGS 和 PG_LOCKS 表使用的 SQL 函数除外。

例如,无法在与 Amazon Redshift 表的联接中查询 PG_STATS 表,因为存在不受支持的函数。

以下目录表和视图提供了可联接到 Amazon Redshift 表中的信息的有用信息。由于数据类型和函数限制,其中的一些表仅允许部分访问。在查询可部分访问的表时,请仔细选择或引用其列。

以下表可完全访问且不包含任何不受支持的数据类型或函数:

以下表可部分访问且包含一些不受支持的类型、函数和已截断的文本列。文本列中的值将截断为 varchar(256) 值。

对于 Amazon Redshift 管理员,此处未列出的目录表是不可访问的或可能没有用。不过,当查询未涉及与 Amazon Redshift 表的联接时,可以查询任何目录表或视图。

可以将 Postgres 目录表中的 OID 列用作联接列。例如,联接条件 pg_database.oid = stv_tbl_perm.db_id 将每个 PG_DATABASE 行的内部数据库对象 ID 与 STV_TBL_PERM 表中的可见 DB_ID 列匹配。OID 列是内部主键,当您从表中选择时,这些列不可见。目录视图没有 OID 列。