الانتقال إلى المحتوى الرئيسي
تُستخدم عبارة TRUNCATE في ClickHouse لإزالة جميع البيانات بسرعة من جدول أو قاعدة بيانات مع الحفاظ على بنيتهما.

TRUNCATE TABLE

TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC]

ParameterDescription
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 جميع الجداول

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

TRUNCATE DATABASE [IF EXISTS] db [ON CLUSTER cluster]

المعلمةالوصف
IF EXISTSيمنع ظهور خطأ إذا كانت قاعدة البيانات غير موجودة.
dbاسم قاعدة البيانات.
ON CLUSTER clusterينفّذ الأمر على مستوى عنقود محدد.
يزيل جميع الجداول من قاعدة بيانات مع الإبقاء على قاعدة البيانات نفسها. وعند حذف العبارة IF EXISTS، يعرض الاستعلام خطأ إذا كانت قاعدة البيانات غير موجودة.
TRUNCATE DATABASE غير مدعوم لقواعد البيانات Replicated. بدلًا من ذلك، ما عليك سوى تنفيذ DROP ثم CREATE لقاعدة البيانات.
آخر تعديل في ٢٩ يونيو ٢٠٢٦