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