Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

EXCHANGE

Атомарно меняет имена двух таблиц или словарей местами. Эту задачу также можно выполнить с помощью запроса RENAME, используя временное имя, однако в этом случае операция не будет атомарной.

Синтаксис

EXCHANGE TABLES|DICTIONARIES [db0.]name_A AND [db1.]name_B [ON CLUSTER cluster]

EXCHANGE TABLES

Меняет местами имена двух таблиц.

Синтаксис

EXCHANGE TABLES [db0.]table_A AND [db1.]table_B [ON CLUSTER cluster]

EXCHANGE НЕСКОЛЬКИХ ТАБЛИЦ

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

Пример

Querysql
-- Создать таблицы
CREATE TABLE a (a UInt8) ENGINE=Memory;
CREATE TABLE b (b UInt8) ENGINE=Memory;
CREATE TABLE c (c UInt8) ENGINE=Memory;
CREATE TABLE d (d UInt8) ENGINE=Memory;

-- Обменять две пары таблиц в одном запросе
EXCHANGE TABLES a AND b, c AND d;

SHOW TABLE a;
SHOW TABLE b;
SHOW TABLE c;
SHOW TABLE d;
Responsesql
-- Теперь таблица 'a' имеет структуру 'b', а таблица 'b' имеет структуру 'a'

EXCHANGE СЛОВАРЕЙ

Меняет имена двух словарей местами.

Синтаксис

EXCHANGE DICTIONARIES [db0.]dict_A AND [db1.]dict_B [ON CLUSTER cluster]

См. также

Navigation