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
-- 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;-- 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