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

Koşulla eşleşen satırların sütun değerlerini Güncelleştirmeler. 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 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

    Tablodaki bir sütuna başvuru. 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. Sütunlara başvurursanız table_name , bunlar güncelleştirmeden önceki satırın durumunu temsil ederler.

  • VARSAYILAN

    Ş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 DEFAULT sütunun 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 EXISTSalt sorguları yeniden NOT IN yazabilirsiniz. Alt sorgular NOT IN yavaş olabileceği gibi UPDATE mümkün olduğunda kullanmanız NOT EXISTS 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'