跳到主要内容
跳到主要内容

DETACH 语句

使服务器“忘记”一个表、物化视图、字典或数据库的存在。

语法

分离不会删除表、物化视图、字典或数据库的数据或元数据。如果一个实体不是在 PERMANENTLY 状态下被分离,下次服务器启动时,服务器将读取元数据并重新调用表/视图/字典/数据库。如果一个实体是以 PERMANENTLY 状态被分离的,则不会有自动调用。

不论一个表、字典或数据库是否被永久分离,都可以使用 ATTACH 查询重新附加它们。系统日志表也可以重新附加(例如 query_logtext_log 等)。其他系统表无法重新附加。在下次服务器启动时,服务器将重新调用这些表。

ATTACH MATERIALIZED VIEW 不支持简写(不带 SELECT),但您可以使用 ATTACH TABLE 查询附加它。

请注意,您不能对已经分离(临时)的表进行永久分离。但您可以重新附加它,然后再次永久分离。

此外,您不能 DROP 被分离的表,也不能 CREATE TABLE 创建一个与永久分离的表同名的表,或使用 RENAME TABLE 查询用其他表替换它。

SYNC 修饰符会立即执行该操作。

示例

创建一个表:

查询:

结果:

分离表:

查询:

结果:

备注

在 ClickHouse Cloud 中,用户应该使用 PERMANENTLY 子句,例如 DETACH TABLE <table> PERMANENTLY。如果不使用此子句,表将在集群重启时例如在升级期间被重新附加。

另请参阅