Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

EXCHANGE

Troca, de forma atômica, os nomes de duas tabelas ou dicionários. Essa tarefa também pode ser realizada com uma consulta RENAME usando um nome temporário, mas, nesse caso, a operação não é atômica.

Sintaxe

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

EXCHANGE TABLES

Troca os nomes de duas tabelas.

Sintaxe

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

EXCHANGE MÚLTIPLAS TABELAS

Você pode trocar vários pares de tabelas em uma única consulta, separando-os por vírgulas.

Exemplo

Querysql
-- Criar tabelas
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;

-- Trocar dois pares de tabelas em uma única consulta
EXCHANGE TABLES a AND b, c AND d;

SHOW TABLE a;
SHOW TABLE b;
SHOW TABLE c;
SHOW TABLE d;
Responsesql
-- Agora a tabela 'a' tem a estrutura de 'b', e a tabela 'b' tem a estrutura de 'a'

EXCHANGE DICTIONARIES

Troca os nomes de dois dicionários.

Sintaxe

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

Veja também

Navigation