Skip to main content

إضافة عمود إلى جدول

سنستخدم clickhouse-local:
لنفترض أن لدينا الجدول التالي:
لنُضِفْ سجلًا واحدًا:
والآن استعلم من جدول events:

إضافة عمود جديد

لنفترض الآن أننا سنضيف عمودًا جديدًا باسم favoriteNumber، وسيكون من نوع Float64. يمكننا إجراء ذلك باستخدام عبارة ALTER TABLE...ADD COLUMN:
إذا أجرينا استعلامًا على الجدول events، فسنرى المخرجات التالية:
تكون القيمة الافتراضية للصف Alexey هي 7 لأن هذا العمود لم يكن موجودًا عند إضافة ذلك الصف. بعد ذلك، لنُضِف عمودًا آخر:
إذا أجرينا استعلامًا على جدول events، فسنرى الناتج التالي:

تعديل القيمة الافتراضية لعمود

إذا عدّلنا نوع العمود favoriteNumber باستخدام عبارة ALTER TABLE...MODIFY COLUMN، تصبح الأمور أكثر إثارة للاهتمام:
إذا نفّذنا استعلامًا على events مرة أخرى، فسنرى هذا الناتج:
يحتفظ Tyler بالقيمة 7، وهي القيمة الافتراضية التي كانت مُطبَّقة عند إنشاء ذلك الصف. ويأخذ Alexey القيمة الافتراضية الجديدة 99 لأن العمود favoriteNumber لم يكن موجودًا عند إنشاء ذلك الصف. إذا أردنا أن يستخدم الصف Alexey القيمة الافتراضية الحالية فورًا، فعلينا استدعاء OPTIMIZE TABLE لفرض كتابة القيم الافتراضية الحالية على القرص:
بعد أن نفعل ذلك، لنفترض أننا غيّرنا القيمة الافتراضية مرة أخرى:
ثم أدرِج صفًا آخر:
أخيرًا، لنُنفِّذ استعلامًا على events مرةً أخيرة:
يعتمد Tanya القيمة الافتراضية الجديدة 21، لكن Alexey لديه القيمة الافتراضية القديمة 99.

التحكم في موضع العمود في الجدول

عند إضافة عمود جديد، يُضاف افتراضيًا إلى نهاية الجدول. ولكن يمكننا استخدام العبارتين FIRST وAFTER للتحكم في موضع العمود. على سبيل المثال، إذا أردنا إضافة عمود باسم favoriteColor بعد العمود name، فيمكننا القيام بذلك كما يلي:
لنُجرِ استعلامًا على events:
وإذا أردنا إضافة العمود favoriteDatabase وجعله أول عمود في القائمة، فيمكننا فعل ذلك على النحو التالي:
ولنلقِ نظرة على تعريف الجدول:
آخر تعديل في ١٤ أغسطس ٢٠٢٦