يتيح TRUNCATE إزالة البيانات من جدول أو قاعدة بيانات مع الإبقاء عليهما. وهذه عملية خفيفة الوزن لا يمكن التراجع عنها.
تُستخدم تعليمة 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]
| Parameter | الوصف |
|---|
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ها من جديد.