UPDATE

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

هذا البيان مدعوم فقط لجداول بحيرة دلتا.

بناء الجملة

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

المعلمات

  • table_name

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

  • table_alias

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

  • column_name

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

  • field_name

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

  • expr

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

  • أين

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