> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> توثيق عبارة REPLACE TABLE

# REPLACE TABLE

<div id="overview">
  ## نظرة عامة
</div>

تتيح لك عبارة `REPLACE` تحديث جدول [بشكل ذري](/docs/ar/concepts/core-concepts/glossary#atomicity).

<Note>
  تُدعَم هذه التعليمة في محرّكي قواعد البيانات [`Atomic`](/docs/ar/reference/engines/database-engines/atomic) و[`Replicated`](/docs/ar/reference/engines/database-engines/replicated)،
  وهما محرّكا قواعد البيانات الافتراضيان في ClickHouse وClickHouse Cloud، على التوالي.
</Note>

عادةً، إذا احتجت إلى حذف بعض البيانات من جدول،
يمكنك إنشاء جدول جديد وملؤه باستخدام تعليمة `SELECT` لا تسترجع البيانات غير المرغوب فيها،
ثم إسقاط الجدول القديم وإعادة تسمية الجدول الجديد.
يوضّح المثال أدناه هذا النهج:

```sql theme={null}
CREATE TABLE myNewTable AS myOldTable;

INSERT INTO myNewTable
SELECT * FROM myOldTable 
WHERE CounterID <12345;

DROP TABLE myOldTable;

RENAME TABLE myNewTable TO myOldTable;
```

بدلاً من النهج المذكور أعلاه، يمكنك أيضاً استخدام `REPLACE` (إذا كنت تستخدم محركات قواعد البيانات الافتراضية) لتحقيق النتيجة نفسها:

```sql theme={null}
REPLACE TABLE myOldTable
ENGINE = MergeTree()
ORDER BY CounterID 
AS
SELECT * FROM myOldTable
WHERE CounterID <12345;
```

<div id="syntax">
  ## الصياغة
</div>

```sql theme={null}
{CREATE [OR REPLACE] | REPLACE} TABLE [db.]table_name
```

<Note>
  تعمل جميع صيغ بناء الجملة لعبارة [`CREATE`](/docs/ar/reference/statements/create/table) أيضًا مع هذه العبارة. يؤدي استدعاء `REPLACE` لجدول غير موجود إلى ظهور خطأ.
</Note>

<div id="examples">
  ## أمثلة
</div>

<Tabs>
  <Tab title="محلي">
    لنأخذ الجدول التالي:

    ```sql theme={null}
    CREATE DATABASE base 
    ENGINE = Atomic;

    CREATE OR REPLACE TABLE base.t1
    (
        n UInt64,
        s String
    )
    ENGINE = MergeTree
    ORDER BY n;

    INSERT INTO base.t1 VALUES (1, 'test');

    SELECT * FROM base.t1;

    ┌─n─┬─s────┐
    │ 1 │ test │
    └───┴──────┘
    ```

    يمكننا استخدام عبارة `REPLACE` لمسح جميع البيانات:

    ```sql theme={null}
    CREATE OR REPLACE TABLE base.t1 
    (
        n UInt64,
        s Nullable(String)
    )
    ENGINE = MergeTree
    ORDER BY n;

    INSERT INTO base.t1 VALUES (2, null);

    SELECT * FROM base.t1;

    ┌─n─┬─s──┐
    │ 2 │ \N │
    └───┴────┘
    ```

    أو يمكننا استخدام عبارة `REPLACE` لتغيير بنية الجدول:

    ```sql theme={null}
    REPLACE TABLE base.t1 (n UInt64) 
    ENGINE = MergeTree 
    ORDER BY n;

    INSERT INTO base.t1 VALUES (3);

    SELECT * FROM base.t1;

    ┌─n─┐
    │ 3 │
    └───┘
    ```
  </Tab>

  <Tab title="Cloud">
    لنأخذ الجدول التالي على ClickHouse Cloud:

    ```sql theme={null}
    CREATE DATABASE base;

    CREATE OR REPLACE TABLE base.t1 
    (
        n UInt64,
        s String
    )
    ENGINE = MergeTree
    ORDER BY n;

    INSERT INTO base.t1 VALUES (1, 'test');

    SELECT * FROM base.t1;

    1    test
    ```

    يمكننا استخدام عبارة `REPLACE` لمسح جميع البيانات:

    ```sql theme={null}
    CREATE OR REPLACE TABLE base.t1 
    (
        n UInt64, 
        s Nullable(String)
    )
    ENGINE = MergeTree
    ORDER BY n;

    INSERT INTO base.t1 VALUES (2, null);

    SELECT * FROM base.t1;

    2    
    ```

    أو يمكننا استخدام عبارة `REPLACE` لتغيير بنية الجدول:

    ```sql theme={null}
    REPLACE TABLE base.t1 (n UInt64) 
    ENGINE = MergeTree 
    ORDER BY n;

    INSERT INTO base.t1 VALUES (3);

    SELECT * FROM base.t1;

    3
    ```
  </Tab>
</Tabs>
