Skip to main content

描述

包含每个已分离表的相关信息。

  • database (String) — 该表所在的数据库名称。
  • table (String) — 表名。
  • uuid (UUID) — 表的 uuid (Atomic 数据库) 。
  • metadata_path (String) — 文件系统中该表元数据的路径。
  • is_permanently (UInt8) — 该表已被永久分离。

注意事项

对于 DatabaseMySQLDatabasePostgreSQL,这些数据库并不拥有底层数据——数据存储在远程 MySQL/PostgreSQL 服务器上。因此,对使用这些数据库引擎的表执行 DROP TABLE 时,内部实际调用的是 detachTablePermanently:它只会移除 ClickHouse 对该表的本地记录,该表会显示在 system.detached_tables 中,且 is_permanently = 1,与显式执行 DETACH TABLE PERMANENTLY 的效果相同。远程数据本身不会受到影响。对于持久化的 MySQL/PostgreSQL 数据库,分离状态会在服务器重启和重新连接后保留:DatabaseMySQL 会在元数据目录中存储 .remove_flag 标记,而 DatabasePostgreSQL 会存储 .removed 标记。两者都会在启动时由 loadStoredObjects 重新加载。只有在不使用旧元数据目录创建新的外部数据库映射时,该表才会重新出现——例如,删除元数据后,或使用不同名称创建数据库时。

示例

最后修改于 2026年8月26日