Descrição
Contém informações sobre cada tabela em estado desanexado.
Colunas
database(String) — O nome do banco de dados em que a tabela está.table(String) — Nome da tabela.uuid(UUID) — UUID da tabela (banco de dados atomic).metadata_path(String) — Caminho dos metadados da tabela no sistema de arquivos.is_permanently(UInt8) — A tabela foi desanexada permanentemente.
Notas
No caso de DatabaseMySQL e DatabasePostgreSQL, esses bancos de dados não são proprietários dos dados subjacentes — eles residem no servidor MySQL/PostgreSQL remoto. Como resultado, o DROP TABLE de uma tabela de um desses motores de banco de dados é implementado internamente como detachTablePermanently: ele apenas remove o rastreamento local da tabela no ClickHouse, e a tabela aparece em system.detached_tables com is_permanently = 1, assim como em um DETACH TABLE PERMANENTLY explícito. Os dados remotos permanecem intactos. Para bancos de dados MySQL/PostgreSQL persistentes, o estado desanexado persiste entre reinicializações e reconexões do servidor: DatabaseMySQL armazena um marcador .remove_flag no diretório de metadados, enquanto DatabasePostgreSQL armazena um marcador .removed. Ambos são recarregados por loadStoredObjects na inicialização. A tabela só reaparece se for criado um novo mapeamento de banco de dados externo sem o diretório de metadados antigo — por exemplo, se os metadados forem removidos ou se o banco de dados for criado com outro nome.
Exemplo
SELECT * FROM system.detached_tables FORMAT Vertical;Row 1:
──────
database: base
table: t1
uuid: 81b1c20a-b7c6-4116-a2ce-7583fb6b6736
metadata_path: /var/lib/clickhouse/store/461/461cf698-fd0b-406d-8c01-5d8fd5748a91/t1.sql
is_permanently: 1