Aracılığıyla paylaş


UPDATE

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Bir koşulla eşleşen satırların sütun değerlerini güncelleştirir. Koşul sağlanmazsa, tüm satırlar için sütun değerlerini güncelleştirin.

Bu deyim yalnızca Delta Lake tabloları için desteklenir.

Sözdizimi

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

Parametreler

  • table_name

    Güncelleştirilecek tabloyu tanımlar. Tablo adı, zamansal belirtim ya daseçenek belirtimi kullanmamalıdır.

    table_name yabancı tablo olmamalıdır.

  • table_alias

    Tablo için bir diğer ad tanımlayın. Diğer ad bir sütun listesi içermemelidir.

  • column_name

    Tablo üzerinde bir sütuna referans. Her sütuna en fazla bir kez başvurabilirsiniz.

  • field_name

    STRUCT türünde bir sütun içindeki alana başvuru. Her alana en fazla bir kez başvurabilirsiniz.

  • ifade

    Rastgele bir ifade. table_name sütunlara başvurursanız, bunlar güncelleştirmeden önceki satırın durumunu temsil ederler.

  • TEMERRÜT

    Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 11.3 LTS ve üzeri

    Tanımlanmışsa sütun için DEFAULT ifadesi, aksi takdirde NULL.

  • WHERE

    Satırları koşula göre filtreleyin. yan tümcesi WHERE aşağıdaki özel durumlara sahip alt sorgular içerebilir:

    • İç içe alt sorgular, yani başka bir alt sorgu içindeki bir alt sorgu
    • bir NOT IN içindeki bir ORalt sorgu, örneğin, a = 3 OR b NOT IN (SELECT c from t)

    Çoğu durumda, kullanarak NOT INalt sorguları yeniden NOT EXISTS yazabilirsiniz. Alt sorgular NOT EXISTS yavaş olabileceği gibi UPDATE mümkün olduğunda kullanmanız NOT IN gerekir.

Örnekler

> 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'