تحديث

ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime

التحديثات قيم الأعمدة للصفوف التي تطابق دالة تقييم. عند عدم توفير دالة تقييم، قم بتحديث قيم العمود لكافة الصفوف.

هذه العبارة معتمدة فقط لجداول Delta Lake.

بناء الجملة

UPDATE table_name [table_alias]
   SET  { { column_name | field_name }  = [ expr | DEFAULT } [, ...]
   [WHERE clause]

المعلمات

  • table_name

    تعريف الجدول المراد تحديثه. يجب ألا يستخدم اسم الجدول مواصفات زمنية.

    table_name يجب ألا تكون طاولة خارجية.

  • table_alias

    تعريف اسم مستعار للجدول. يجب ألا يتضمن الاسم المستعار قائمة أعمدة.

  • column_name

    مرجع إلى عمود في الجدول. يمكنك الرجوع إلى كل عمود مرة واحدة على الأكثر.

  • field_name

    مرجع لحقل داخل عمود من نوع STRUCT. يمكنك الرجوع إلى كل حقل مرة واحدة على الأكثر.

  • expr

    تعبير عشوائي. إذا قمت بالإشارة إلى table_name الأعمدة، فإنها تمثل حالة الصف قبل التحديث.

  • الافتراضي

    ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime 11.3 LTS وما فوق

    DEFAULT التعبير للعمود إذا تم تعريفه، NULL بخلاف ذلك.

  • WHERE

    تصفية الصفوف حسب دالة التقييم. WHERE قد تتضمن العبارة استعلامات فرعية مع الاستثناءات التالية:

    • الاستعلامات الفرعية المتداخلة، أي استعلام فرعي داخل استعلام فرعي آخر
    • NOT IN استعلام فرعي داخل OR، على سبيل المثال،a = 3 OR b NOT IN (SELECT c from t)

    في معظم الحالات، يمكنك إعادة كتابة NOT IN الاستعلامات الفرعية باستخدام NOT EXISTS. يجب استخدام NOT EXISTS كلما أمكن، كما هو الحال UPDATE مع NOT IN الاستعلامات الفرعية يمكن أن تكون بطيئة.

الأمثلة

> UPDATE events SET eventType = 'click' WHERE eventType = 'clk'

> UPDATE all_events
     SET session_time = 0, ignored = true
   WHERE session_time < (SELECT min(session_time) FROM good_events)

> UPDATE orders AS t1
     SET order_status = 'returned'
   WHERE EXISTS (SELECT oid FROM returned_orders WHERE t1.oid = oid)

> UPDATE events
     SET category = 'undefined'
   WHERE category NOT IN (SELECT category FROM events2 WHERE date > '2001-01-01')

> UPDATE events
     SET ignored = DEFAULT
  WHERE eventType = 'unknown'