DELETE FROM (Databricks SQL)

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

Sintaxis

DELETE FROM table_identifier [table_alias] [WHERE predicate]

Parámetros

  • table_identifier

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

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

  • WHERE

    Filtrar filas por predicado.

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

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

    En la mayoría de los casos, puede reescribir NOT IN las subconsserciones mediante NOT EXISTS . Se recomienda usar NOT EXISTS siempre que sea posible, ya que DELETE con las NOT IN subconsitudes puede ser lento.

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