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