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