TABLES 视图

此 Information Schema 视图为指定(或当前)数据库中的每个表和视图显示一行,包括 INFORMATION_SCHEMA 架构本身中的视图。

另请参阅:

COLUMNS 视图VIEWS 视图

列名称

数据类型

描述

TABLE_CATALOG

TEXT

表所属的数据库。

TABLE_SCHEMA

TEXT

表所属的架构。

TABLE_NAME

TEXT

表的名称。

TABLE_OWNER

TEXT

拥有表的角色的名称。

TABLE_TYPE

TEXT

指示表类型。有效值为 BASE TABLETEMPORARY TABLEEXTERNAL TABLEEVENT TABLEVIEWMATERIALIZED VIEW

IS_TRANSIENT

TEXT

指示这是否为瞬态表。

CLUSTERING_KEY

TEXT

表的群集密钥。

ROW_COUNT

NUMBER

表中的行数。

BYTES

NUMBER

通过表的扫描访问的字节数。

RETENTION_TIME

NUMBER

为 Time Travel 保留历史数据的天数。

SELF_REFERENCING_COLUMN_NAME

TEXT

不适用于 Snowflake。

REFERENCE_GENERATION

TEXT

不适用于 Snowflake。

USER_DEFINED_TYPE_CATALOG

TEXT

不适用于 Snowflake。

USER_DEFINED_TYPE_SCHEMA

TEXT

不适用于 Snowflake。

USER_DEFINED_TYPE_NAME

TEXT

不适用于 Snowflake。

IS_INSERTABLE_INTO

TEXT

不适用于 Snowflake。

IS_TYPED

TEXT

不适用于 Snowflake。

COMMIT_ACTION

TEXT

不适用于 Snowflake。

CREATED

TIMESTAMP_LTZ

表的创建时间。

LAST_ALTERED

TIMESTAMP_LTZ

上次更改对象的日期和时间。请参阅 使用说明

LAST_DDL

TIMESTAMP_LTZ

对表或视图执行的上次 DDL 操作的时间戳。

所有支持的表/视图 DDL 操作都会更新此字段:

  • { CREATE | ALTER | DROP | UNDROP } TABLE

  • { CREATE | ALTER | DROP } VIEW

所有 ALTER TABLE 操作都会更新此字段,包括设置或取消设置表参数(例如,COMMENT、DATA_RETENTION_TIME 等)以及对表列的更改 (ADD / MODIFY / RENAME / DROP)。

有关详细信息,请参阅 使用说明

LAST_DDL_BY

TEXT

上次执行 DDL 操作的用户的当前用户名。如果用户已被删除,则显示 DROPPED_USER (<id>)

对于已删除的用户,您可以将 <id> 加入 USERS 视图 中的 USER_ID 列。

AUTO_CLUSTERING_ON

BOOLEAN

指示是否为表启用自动聚类。

COMMENT

TEXT

为表添加注释。

IS_TEMPORARY

TEXT

指示这是否为临时表。有效值为 YESNO

IS_ICEBERG

TEXT

指示该表是否为 Iceberg 表。有效值为 YESNO

IS_DYNAMIC

TEXT

指示该表是否为 动态表。有效值为 YESNO

IS_IMMUTABLE

TEXT

指示该表是否使用 READ ONLY 属性创建。有效值为 YESNO。仅当您在账户中 启用 2024_04 行为变更捆绑包 时,此列在输出中才可见。

使用说明

  • 该视图仅显示会话的当前角色已被授予访问权限的对象。该视图不遵循 MANAGE GRANTS 权限,因此,当拥有被授予 MANAGE GRANTS 权限的角色同时执行视图和 SHOW 命令时,视图显示的信息可能比命令少。

    此行为也适用于具有相应 SHOW 命令的其他账户级别 权限 和 Information Schema 视图。

  • 查询表的总和(字节)并不表示总存储使用量,因为该数量不包括 Time Travel 和故障安全使用量。

  • 该视图不包括已删除的表。要查看删除的表,请改用 SHOW TABLES

  • 要仅查看查询中的表,请使用 WHERE 子句进行筛选,例如:

    ... WHERE table_schema != 'INFORMATION_SCHEMA'

  • 对对象执行以下操作时,将更新 LAST_ALTERED 列:

    • DDL 操作。

    • DML 操作(仅适用于表)。

    • 由 Snowflake 对元数据执行的后台维护操作。

    对于视图和表,请使用 LAST_DDL 列存储上次修改对象的时间。

  • LAST_DDL 列中的值更新如下:

    • 创建表或视图时,LAST_DDL 时间戳与 CREATED 时间戳相同。

    • 删除表或视图时,LAST_DDL 时间戳与 DELETED 时间戳相同。

    • 最后的 DDL 数据不适用于在 添加 列之前执行的操作。一直到执行 DDL 操作为止,新的 DDL 字段都包含 null

    • 对于复制的数据库,仅针对主要数据库中的对象更新 LAST_DDL 和 LAST_DDL_BY 字段。故障转移后,LAST_DDL 和 LAST_DDL_BY 字段将更新,以便对新提升的主要数据库中的表和视图执行 DDL 操作。对于现在的次要数据库中的对象,这些字段将保持不变。

    • 对于在刷新操作期间新创建的次要数据库中的对象,这些字段为 null

示例

检索 mydatabase 数据库中所有架构中所有表的大小(以字节为单位):

SELECT TABLE_SCHEMA,SUM(BYTES)
    FROM mydatabase.information_schema.tables
    GROUP BY TABLE_SCHEMA;
Copy
语言: 中文