ALTER TABLE.
تحديث البيانات
ALTER TABLE...UPDATE لتحديث الصفوف في أحد الجداول:
<expression> هي القيمة الجديدة للعمود في الصفوف التي يتحقق فيها <filter_expr>. يجب أن يكون <expression> من نوع بيانات العمود نفسه، أو قابلاً للتحويل إلى نوع البيانات نفسه باستخدام المعامل CAST. ينبغي أن يُرجع <filter_expr> قيمة UInt8 (صفر أو غير صفر) لكل صف من البيانات. يمكن دمج عدة عبارات UPDATE <column> في أمر ALTER TABLE واحد، مفصولة بفواصل.
أمثلة:
-
تتيح عملية mutation كهذه تحديث
visitor_idsواستبدالها بقيم جديدة باستخدام lookup في قاموس: -
قد يكون تعديل عدة قيم في أمر واحد أكثر كفاءة من تنفيذ عدة أوامر:
-
يمكن تنفيذ عمليات mutation باستخدام
ON CLUSTERللجداول المُقسَّمة إلى shards:
لا يمكن تحديث الأعمدة التي تكون جزءًا من المفتاح الأساسي أو مفتاح الفرز.
حذف البيانات
ALTER TABLE لحذف الصفوف:
<filter_expr> قيمة UInt8 لكل صف من البيانات.
أمثلة
-
احذف أي سجلات تكون فيها قيمة أحد الأعمدة ضمن مصفوفة من القيم:
-
ما الذي يغيّره هذا الاستعلام؟
لحذف جميع البيانات من جدول، من الأكثر كفاءة استخدام الأمر
TRUNCATE TABLE [<database].]<table>. ويمكن أيضًا تنفيذ هذا الأمر باستخدام ON CLUSTER.DELETE لمزيد من التفاصيل.
عمليات الحذف الخفيفة
DELETE FROM، ويُشار إليه باسم الحذف الخفيف. تُعلَّم الصفوف المحذوفة فورًا على أنها محذوفة، وتُستبعَد تلقائيًا من جميع الاستعلامات اللاحقة، لذلك لا تحتاج إلى انتظار دمج الأجزاء أو استخدام الكلمة المفتاحية FINAL. ويجري تنظيف البيانات بشكل غير متزامن في الخلفية.
hits حيث يحتوي العمود Title على النص hello:
- هذه الميزة متاحة فقط لعائلة محركات الجداول
MergeTree. - يكون الحذف الخفيف متزامنًا افتراضيًا، إذ ينتظر إلى أن تعالج جميع النسخ المتماثلة عملية الحذف. ويخضع هذا السلوك للتحكم من خلال الإعداد
lightweight_deletes_sync.