Compartir a través de


DELETE FROM

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí 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

  • table_name

    Identifica una tabla existente. El nombre no debe incluir una especificación temporal.

    table_name no debe ser una tabla externa.

  • table_alias

    Define un alias para la tabla. El alias no debe incluir una lista de columnas.

  • WHERE

    Filtre las filas por predicado.

    El predicado WHERE admite subconsultas, incluidas IN, 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 objeto OR, 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 mediante NOT EXISTS. Se recomienda usar NOT EXISTS siempre que sea posible, ya que la instrucción DELETE con las subconsultas NOT 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')