Échange de manière atomique les noms de deux tables ou dictionnaires.
Cette opération peut également être réalisée avec une requête RENAME utilisant un nom temporaire, mais dans ce cas, l’opération n’est pas atomique.
La requête EXCHANGE est prise en charge uniquement par les moteurs de base de données Atomic et Shared.
Syntaxe
EXCHANGE TABLES|DICTIONARIES [db0.]name_A AND [db1.]name_B [ON CLUSTER cluster]
Échange les noms de deux tables.
Syntaxe
EXCHANGE TABLES [db0.]table_A AND [db1.]table_B [ON CLUSTER cluster]
EXCHANGE DE PLUSIEURS TABLES
Vous pouvez échanger plusieurs paires de tables dans une seule requête en les séparant par des virgules.
Lors de l’échange de plusieurs paires de tables, les échanges sont effectués séquentiellement, et non de façon atomique. Si une erreur survient pendant l’opération, il se peut que certaines paires de tables aient été échangées, tandis que d’autres ne l’aient pas été.
Exemple
-- Create tables
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 two pairs of tables in one query
EXCHANGE TABLES a AND b, c AND d;
SHOW TABLE a;
SHOW TABLE b;
SHOW TABLE c;
SHOW TABLE d;
-- Now table 'a' has the structure of 'b', and table 'b' has the structure of 'a'
┌─statement──────────────┐
│ CREATE TABLE default.a↴│
│↳( ↴│
│↳ `b` UInt8 ↴│
│↳) ↴│
│↳ENGINE = Memory │
└────────────────────────┘
┌─statement──────────────┐
│ CREATE TABLE default.b↴│
│↳( ↴│
│↳ `a` UInt8 ↴│
│↳) ↴│
│↳ENGINE = Memory │
└────────────────────────┘
-- Now table 'c' has the structure of 'd', and table 'd' has the structure of 'c'
┌─statement──────────────┐
│ CREATE TABLE default.c↴│
│↳( ↴│
│↳ `d` UInt8 ↴│
│↳) ↴│
│↳ENGINE = Memory │
└────────────────────────┘
┌─statement──────────────┐
│ CREATE TABLE default.d↴│
│↳( ↴│
│↳ `c` UInt8 ↴│
│↳) ↴│
│↳ENGINE = Memory │
└────────────────────────┘
Échange les noms de deux dictionnaires.
Syntaxe
EXCHANGE DICTIONARIES [db0.]dict_A AND [db1.]dict_B [ON CLUSTER cluster]
Voir aussi