Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:
Databricks SQL
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
[ common_table_expression ]
UPDATE table_name [table_alias]
SET { { column_name | field_name } = [ expr | DEFAULT } [, ...]
[WHERE clause]
Parametreler
-
Yaygın tablo ifadeleri (CTE), yinelenen hesaplamaları önlemek veya karmaşık, iç içe sorguların okunabilirliğini geliştirmek için ana sorgu bloğu içinde birden çok kez yeniden kullanılabilen bir veya daha fazla adlandırılmış sorgudur.
-
Güncelleştirilecek tabloyu tanımlar. Tablo adı, zamansal belirtim ya daseçenek belirtimi kullanmamalıdır.
table_nameyabancı tablo olmamalıdır. -
Tablo için bir diğer ad tanımlayın. Diğer ad bir sütun listesi içermemelidir.
-
Tablo üzerinde bir sütuna referans. Her sütuna en fazla bir kez başvurabilirsiniz.
-
STRUCT türündeki bir sütundaki alana referans. Her alana en fazla bir kez başvurabilirsiniz.
-
Rastgele bir ifade.
table_namesütunlara başvurursanız, bunlar güncelleştirmeden önceki satırın durumunu temsil ederler. VARSAYILAN
Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime 11.3 LTS ve üzeriTanımlanmışsa sütun için
DEFAULTifadesi, aksi takdirde NULL.-
Şarta göre satırları filtreleyin. yan tümcesi
WHEREaş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 INiçindeki birORalt sorgu, örneğin,a = 3 OR b NOT IN (SELECT c from t)
Çoğu durumda,
NOT INalt sorgularıNOT EXISTSkullanarak yeniden yazabilirsiniz.NOT EXISTSkullanabildiğiniz her durumda kullanmalısınız, çünküUPDATEileNOT INalt sorgular yavaş olabilir.
Başka bir tablodan güncelleştirme veya birleştirme
Databricks SQL, diğer bazı SQL diyalektlerinde kullanılan söz dizimini desteklemez UPDATE ... FROM ... JOIN (örneğin, tablodaki sütunları başka bir tabloyla birleştirmeden güncelleştirme). Tabloyu başka bir tablo veya alt sorguyla birleştirmeye göre güncelleştirmek için kullanın MERGE INTO .
Ö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'
Aşağıdaki örnekte, desteklenmeyen söz dizimi yerine kullanarak birleştirmeden MERGE bir tablonun nasıl güncelleştirilecekleri UPDATE ... FROM ... JOIN gösterilmektedir:
-- Equivalent to (not supported in Databricks): UPDATE t1 SET t1.c1 = t2.c1 FROM t1 INNER JOIN t2 ON t1.c2 = t2.c2
> MERGE INTO t1
USING t2 ON t1.c2 = t2.c2
WHEN MATCHED THEN UPDATE SET t1.c1 = t2.c1;