تحديث

ينطبق على:التحقق الذي تم وضع علامة نعم عليه التحقق من 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 الأعمدة، فإنها تمثل حالة الصف قبل التحديث.

  • الافتراضي

    ينطبق على:check تم وضع علامة نعم على Databricks SQL SQL warehouse الإصدار 2022.35 أو فحص أعلى تم وضع علامة نعم على Databricks Runtime 11.2 والإصدارات الأحدث

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

  • حيث

    تصفية الصفوف حسب التقييم. 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'