DELETE FROM
Se aplica a: Databricks SQL Databricks Runtime
Elimina las filas que coinciden con un predicado. Cuando no se proporciona ningún predicado, elimina todas las filas.
Esta instrucción solo es compatible con tablas de Delta Lake.
Sintaxis
DELETE FROM table_name [table_alias] [WHERE predicate]
Parámetros
-
Identifica una tabla existente. El nombre no debe incluir una especificación temporal.
table_name
no debe ser una tabla externa. -
Define un alias para la tabla. El alias no debe incluir una lista de columnas.
-
Filtre las filas por predicado.
El predicado
WHERE
admite subconsultas, incluidasIN
,NOT IN
,EXISTS
,NOT EXISTS
y subconsultas escalares. No se admiten los siguientes tipos de subconsulta:- Subconsultas anidadas, es decir, una subconsulta dentro de otra
- Una subconsulta
NOT IN
dentro de un objetoOR
, por ejemplo,a = 3 OR b NOT IN (SELECT c from t)
En la mayoría de los casos, se pueden reescribir las subconsultas
NOT IN
medianteNOT EXISTS
. Se recomienda usarNOT EXISTS
siempre que sea posible, ya que la instrucciónDELETE
con las subconsultasNOT IN
puede ser lenta.
Ejemplos
> DELETE FROM events WHERE date < '2017-01-01'
> DELETE FROM all_events
WHERE session_time < (SELECT min(session_time) FROM good_events)
> DELETE FROM orders AS t1
WHERE EXISTS (SELECT oid FROM returned_orders WHERE t1.oid = oid)
> DELETE FROM events
WHERE category NOT IN (SELECT category FROM events2 WHERE date > '2001-01-01')