DETACH 语句
让服务器“忘记”某个表、物化视图、字典或数据库的存在。
语法
分离操作不会删除表、物化视图、字典或数据库的数据或元数据。如果某个实体没有使用 PERMANENTLY 分离,则在下一次服务器启动时,服务器会读取元数据并再次加载该表/视图/字典/数据库。如果某个实体是使用 PERMANENTLY 分离的,则不会发生自动重新加载。
无论表、字典或数据库是否被永久分离,这两种情况下都可以使用 ATTACH 查询将其重新附加。
系统日志表也可以重新附加(例如 query_log、text_log 等)。其他系统表无法重新附加,但在下一次服务器启动时,服务器会再次加载这些表。
ATTACH MATERIALIZED VIEW 不支持简写语法(即不带 SELECT),但可以使用 ATTACH TABLE 查询来附加它。
请注意,不能对已经分离(临时分离)的表执行永久分离操作。但可以先将其重新附加,然后再执行永久分离。
另外,不能对已分离的表执行 DROP 操作,不能使用 CREATE TABLE 创建与已永久分离表同名的表,也不能使用 RENAME TABLE 查询将其替换为其他表。
SYNC 修饰符会同步执行该操作(无延迟)。
示例
创建一张表:
查询:
结果:
分离表:
查询:
结果:
注意
在 ClickHouse Cloud 中,用户应使用 PERMANENTLY 子句,例如 DETACH TABLE <table> PERMANENTLY。如果未使用该子句,表会在集群重启时(例如升级期间)自动重新附加。
另请参阅