Команда 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
. Если эта клаузу не использовать, таблицы будут повторно подключены при перезапуске кластера, например, во время обновлений.
См. также