تحديث
ينطبق على: التحقق من Databricks SQL Databricks Runtime
التحديثات قيم العمود للصفوف التي تطابق دالة تقييم. عند عدم توفير دالة تقييم، قم بتحديث قيم العمود لجميع الصفوف.
هذه العبارة مدعومة فقط لجداول Delta Lake.
بناء الجمله
UPDATE table_name [table_alias]
SET { { column_name | field_name } = [ expr | DEFAULT } [, ...]
[WHERE clause]
معلمات
-
يحدد الجدول المطلوب تحديثه. يجب ألا يستخدم اسم الجدول مواصفات زمنية.
table_name
يجب ألا يكون جدولا خارجيا. -
تعريف اسم مستعار للجدول. يجب ألا يتضمن الاسم المستعار قائمة أعمدة.
-
مرجع إلى عمود في الجدول. يمكنك الرجوع إلى كل عمود مرة واحدة على الأكثر.
-
مرجع لحقل داخل عمود من نوع STRUCT. يمكنك الرجوع إلى كل حقل مرة واحدة على الأكثر.
-
تعبير عشوائي. إذا قمت بالإشارة إلى
table_name
الأعمدة، فإنها تمثل حالة الصف قبل التحديث. الافتراضي
ينطبق على: على 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'