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

Оператор ATTACH

Присоединяет таблицу или словарь, например, при переносе базы данных на другой сервер.

Синтаксис

Запрос не создает данные на диске, а предполагает, что данные уже находятся в соответствующих местах, и просто добавляет информацию о указанной таблице, словаре или базе данных на сервер. После выполнения запроса ATTACH сервер будет знать о существовании таблицы, словаря или базы данных.

Если таблица была ранее отсоединена (запрос DETACH), что означает, что ее структура известна, вы можете использовать сокращенную запись без определения структуры.

Присоединение Существующей Таблицы

Синтаксис

Этот запрос используется при старте сервера. Сервер хранит метаданные таблицы в виде файлов с запросами ATTACH, которые он просто выполняет при запуске (за исключением некоторых системных таблиц, которые создаются явно на сервере).

Если таблица была отсоединена навсегда, она не будет повторно присоединена при запуске сервера, поэтому вам нужно явно использовать запрос ATTACH.

Создание Новой Таблицы И Присоединение Данных

С Указанным Путем К Данные Таблицы

Запрос создает новую таблицу с предоставленной структурой и присоединяет данные таблицы из указанного каталога в user_files.

Синтаксис

Пример

Запрос:

Результат:

С Указанным UUID Таблицы

Этот запрос создает новую таблицу с предоставленной структурой и присоединяет данные из таблицы с указанным UUID. Это поддерживается движком базы данных Atomic.

Синтаксис

Присоединение Таблицы MergeTree Как ReplicatedMergeTree

Позволяет присоединить не реплицированную таблицу MergeTree как ReplicatedMergeTree. Таблица ReplicatedMergeTree будет создана со значениями настроек default_replica_path и default_replica_name. Также возможно присоединение реплицированной таблицы как обычной MergeTree.

Обратите внимание, что данные таблицы в ZooKeeper не затрагиваются в этом запросе. Это означает, что вам нужно добавить метаданные в ZooKeeper, используя SYSTEM RESTORE REPLICA, или удалить их с помощью SYSTEM DROP REPLICA ... FROM ZKPATH ... после присоединения.

Если вы пытаетесь добавить реплику в существующую таблицу ReplicatedMergeTree, имейте в виду, что все локальные данные в конвертированной таблице MergeTree будут отсоединены.

Синтаксис

Преобразовать таблицу в реплицированную

Преобразовать таблицу в не реплицированную

Получите путь ZooKeeper и имя реплики для таблицы:

Результат:

Присоедините таблицу как не реплицированную и удалите данные реплики из ZooKeeper:

Присоединение Существующего Словаря

Присоединяет ранее отсоединенный словарь.

Синтаксис

Присоединение Существующей Базы Данных

Присоединяет ранее отсоединенную базу данных.

Синтаксис