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