system.tables
包含服务器已知的每个表的元数据。
Detached 表不会显示在 system.tables
中。
Temporary tables 仅在其被创建的会话中可见于 system.tables
中。它们的 database
字段为空,同时 is_temporary
标志被设置为开启。
列:
-
database
(String) — 表所在数据库的名称。 -
name
(String) — 表名。 -
uuid
(UUID) — 表的 uuid(原子数据库)。 -
engine
(String) — 表引擎名称(不带参数)。 -
is_temporary
(UInt8) - 指示表是否为临时的标志。 -
metadata_path
(String) - 文件系统中表元数据的路径。 -
metadata_modification_time
(DateTime) - 表元数据的最新修改时间。 -
metadata_version
(Int32) - ReplicatedMergeTree 表的元数据版本,非 ReplicatedMergeTree 表为 0。 -
dependencies_table
(Array(String)) - 表依赖(当前表的 materialized views)。 -
create_table_query
(String) - 用于创建表的查询。 -
engine_full
(String) - 表引擎的参数。 -
as_select
(String) - 用于视图的SELECT
查询。 -
partition_key
(String) - 表中指定的分区键表达式。 -
sorting_key
(String) - 表中指定的排序键表达式。 -
primary_key
(String) - 表中指定的主键表达式。 -
sampling_key
(String) - 表中指定的采样键表达式。 -
storage_policy
(String) - 存储策略: -
total_rows
(Nullable(UInt64)) - 总行数,如果可以快速确定表中行的确切数量,则返回该值,否则返回NULL
(包括底层的Buffer
表)。 -
total_bytes
(Nullable(UInt64)) - 总字节数,如果可以快速确定存储中表的确切字节数,则返回该值,否则返回NULL
(不包括任何底层存储)。- 如果表将数据存储在磁盘上,则返回磁盘上使用的空间(即压缩的)。
- 如果表将数据存储在内存中,则返回使用的字节数的近似值。
-
total_bytes_uncompressed
(Nullable(UInt64)) - 总未压缩字节数,如果可以快速确定来自表在存储中所有分片校验和的确切字节数,则返回该值,否则返回NULL
(不考虑底层存储(如果有))。 -
lifetime_rows
(Nullable(UInt64)) - 自服务器启动以来插入的总行数(仅适用于Buffer
表)。 -
lifetime_bytes
(Nullable(UInt64)) - 自服务器启动以来插入的总字节数(仅适用于Buffer
表)。 -
comment
(String) - 表的注释。 -
has_own_data
(UInt8) — 指示表本身是否在磁盘上存储某些数据或仅访问其他来源的标志。 -
loading_dependencies_database
(Array(String)) - 数据库加载依赖(应在当前对象之前加载的对象列表)。 -
loading_dependencies_table
(Array(String)) - 表加载依赖(应在当前对象之前加载的对象列表)。
system.tables
表用于 SHOW TABLES
查询的实现。
示例