الانتقال إلى المحتوى الرئيسي
يبدّل أسماء جدولين أو قاموسين تبديلًا ذريًا. يمكن أيضًا تنفيذ هذه المهمة باستخدام استعلام RENAME مع اسم مؤقت، لكن العملية في هذه الحالة لا تكون ذرية.
لا يدعم استعلام EXCHANGE إلا محركا قاعدة البيانات Atomic وShared.
الصيغة
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 عدة جداول

يمكنك إجراء EXCHANGE لعدة أزواج من الجداول ضمن استعلام واحد، مع فصلها بفواصل.
عند إجراء EXCHANGE لعدة أزواج من الجداول، تُنفَّذ عمليات التبديل بالتتابع، وليس بشكل ذرّي. وإذا حدث خطأ أثناء العملية، فقد يكون قد تم تبديل بعض أزواج الجداول، بينما لم يُبدَّل بعضها الآخر.
مثال
Query
-- 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;
Response
-- 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        │
└────────────────────────┘

EXCHANGE DICTIONARIES

يبدّل أسماء قاموسين. الصيغة
EXCHANGE DICTIONARIES [db0.]dict_A AND [db1.]dict_B [ON CLUSTER cluster]
راجع أيضًا
آخر تعديل في ٢٥ يونيو ٢٠٢٦