DELETE FROM (Delta Lake en Azure Databricks)

Elimina las filas que coinciden con un predicado. Cuando no se proporciona ningún predicado, elimina todas las filas.

Syntax

DELETE FROM table_identifier [AS alias] [WHERE predicate]
  • table_identifier

    • [database_name.] table_name: Un nombre de tabla, opcionalmente calificado con un nombre de base de datos.
    • delta.`<path-to-table>`: La ubicación de una tabla Delta existente.
  • COMO alias

    Defina un alias de tabla.

  • WHERE

    Filtrar filas por predicado.

    El WHERE predicado admite subconsultas, incluidas IN NOT IN EXISTS NOT EXISTS las subconsultas escalares,,, y. No se admiten los siguientes tipos de subconsultas:

    • Subconsultas anidadas, es decir, una subconsulta dentro de otra subconsulta
    • NOT IN subconsulta dentro OR de, por ejemplo, a = 3 OR b NOT IN (SELECT c from t)

    En la mayoría de los casos, puede volver a escribir NOT IN subconsultas mediante NOT EXISTS . Se recomienda usar NOT EXISTS siempre que sea posible, al igual que DELETE con NOT IN las subconsultas puede ser lenta.

Ejemplo

DELETE FROM events WHERE date < '2017-01-01'

Ejemplos de subconsulta

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