تُستخدم عبارة TRUNCATE في ClickHouse لإزالة جميع البيانات بسرعة من جدول أو قاعدة بيانات مع الحفاظ على بنيتهما.
TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC]
| Parameter | Description |
|---|
IF EXISTS | يمنع حدوث خطأ إذا لم يكن الجدول موجودًا. وإذا أُغفل، فسيُرجع الاستعلام خطأ. |
db.name | اسم قاعدة البيانات اختياري. |
ON CLUSTER cluster | يشغّل الأمر على عنقود محدد. |
SYNC | يجعل عملية الاقتطاع متزامنة عبر النسخ المتماثلة عند استخدام الجداول المتماثلة. وإذا أُغفل، تحدث عملية الاقتطاع بشكل غير متزامن افتراضيًا. |
يمكنك استخدام إعداد alter_sync لتهيئة الانتظار حتى تُنفَّذ الإجراءات على النسخ المتماثلة.
يمكنك تحديد مدة الانتظار (بالثواني) حتى تنفّذ النسخ المتماثلة غير النشطة استعلامات TRUNCATE باستخدام إعداد replication_wait_for_inactive_replica_timeout.
إذا كان alter_sync مضبوطًا على 2 وكانت بعض النسخ المتماثلة غير نشطة لمدة تتجاوز الوقت المحدد بواسطة إعداد replication_wait_for_inactive_replica_timeout، فسيُطرَح الاستثناء UNFINISHED.
الاستعلام TRUNCATE TABLE غير مدعوم لمحركات الجداول التالية:
TRUNCATE [ALL] TABLES FROM [IF EXISTS] db [LIKE | ILIKE | NOT LIKE '<pattern>'] [ON CLUSTER cluster]
| المعلمة | الوصف |
|---|
ALL | يزيل البيانات من جميع الجداول في قاعدة البيانات. |
IF EXISTS | يمنع حدوث خطأ إذا لم تكن قاعدة البيانات موجودة. |
db | اسم قاعدة البيانات. |
LIKE | ILIKE | NOT LIKE '<pattern>' | يُصفّي الجداول حسب النمط. |
ON CLUSTER cluster | ينفّذ الأمر على مستوى العنقود. |
يزيل جميع البيانات من جميع الجداول في قاعدة بيانات.
TRUNCATE DATABASE [IF EXISTS] db [ON CLUSTER cluster]
| المعلمة | الوصف |
|---|
IF EXISTS | يمنع ظهور خطأ إذا كانت قاعدة البيانات غير موجودة. |
db | اسم قاعدة البيانات. |
ON CLUSTER cluster | ينفّذ الأمر على مستوى عنقود محدد. |
يزيل جميع الجداول من قاعدة بيانات مع الإبقاء على قاعدة البيانات نفسها. وعند حذف العبارة IF EXISTS، يعرض الاستعلام خطأ إذا كانت قاعدة البيانات غير موجودة.
TRUNCATE DATABASE غير مدعوم لقواعد البيانات Replicated. بدلًا من ذلك، ما عليك سوى تنفيذ DROP ثم CREATE لقاعدة البيانات.