Перейти к основному содержимому
Перейти к основному содержимому

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

Смотрите также