Перейти к основному содержанию
Позволяет серверу “забыть” о существовании таблицы, materialized view, словаря или базы данных. Синтаксис
DETACH TABLE|VIEW|DICTIONARY|DATABASE [IF EXISTS] [db.]name [ON CLUSTER cluster] [PERMANENTLY] [SYNC]
Отсоединение не удаляет данные или метаданные таблицы, materialized view, словаря или базы данных. Если сущность не была отсоединена PERMANENTLY, при следующем запуске сервера он прочитает метаданные и снова присоединит таблицу/представление/словарь/базу данных. Если сущность была отсоединена PERMANENTLY, автоматического повторного присоединения не будет. Независимо от того, была ли таблица, словарь или база данных отсоединена навсегда, вы в любом случае можете присоединить их обратно с помощью запроса ATTACH. Системные таблицы логов также можно присоединить обратно (например, query_log, text_log и т. д.). Другие системные таблицы нельзя присоединить повторно. При следующем запуске сервера он снова присоединит эти таблицы. ATTACH MATERIALIZED VIEW не работает с кратким синтаксисом (без SELECT), но ее можно присоединить с помощью запроса ATTACH TABLE. Обратите внимание, что нельзя отсоединить навсегда таблицу, которая уже отсоединена (временно). Но ее можно присоединить обратно, а затем снова отсоединить навсегда. Также нельзя выполнить DROP для отсоединенной таблицы, или CREATE TABLE с тем же именем, что и у таблицы, отсоединенной навсегда, или заменить ее другой таблицей с помощью запроса RENAME TABLE. Модификатор SYNC выполняет действие без задержки. Пример Создание таблицы:
Query
CREATE TABLE test ENGINE = MergeTree ORDER BY () AS SELECT * FROM numbers(10);
SELECT * FROM test;
Response
┌─number─┐
│      0 │
│      1 │
│      2 │
│      3 │
│      4 │
│      5 │
│      6 │
│      7 │
│      8 │
│      9 │
└────────┘
Отсоединение таблицы:
Query
DETACH TABLE test;
SELECT * FROM test;
Response
Received exception from server (version 21.4.1):
Code: 60. DB::Exception: Received from localhost:9000. DB::Exception: Table default.test does not exist.
В ClickHouse Cloud следует использовать предложение PERMANENTLY, например: DETACH TABLE <table> PERMANENTLY. Если это предложение не использовать, таблицы будут повторно подключены при перезапуске кластера, например во время обновления.
См. также
Последнее изменение 10 июня 2026 г.