Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

CREATE TEMPORARY TABLE

临时表支持

ClickHouse 支持临时表,具有以下特性:

  • 临时表会在会话结束时消失,连接断开时也同样如此。
  • 未指定引擎时,临时表使用 Memory 表引擎;也可以使用除 Replicated 和 KeeperMap 外的任何表引擎。
  • 临时表不能指定 DB,而是在数据库之外创建。
  • 无法通过分布式 DDL 查询在集群中的所有服务器上创建临时表 (即使用 ON CLUSTER) :该表仅存在于当前会话中。
  • 如果临时表与另一张表同名,且查询中仅指定表名而未指定 DB,则会使用临时表。
  • 在分布式查询处理中,查询中使用的 Memory 引擎临时表会传递到远程服务器。

语法

要创建临时表,请使用以下语法:

CREATE [OR REPLACE] TEMPORARY TABLE [IF NOT EXISTS] table_name
(
    name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
    name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
    ...
) [ENGINE = engine]

大多数情况下,临时表并非手动创建,而是在查询使用外部数据或执行分布式 (GLOBAL) IN 时创建。有关更多信息,请参阅相应章节。

也可以使用 ENGINE = Memory 的表来替代临时表。

Navigation