تحديث
ينطبق على: 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 Databricks Runtime 11.3 LTS وما فوق
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'