DELETE FROM (Delta Lake no Azure Databricks)

Elimina as linhas que combinam com um predicado. Quando não for fornecido nenhum predicado, elimina todas as linhas.

Syntax

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

    • [database_name.] table_name: Nome de mesa, opcionalmente qualificado com nome de base de dados.
    • delta.<>de caminho a mesa: A localização de uma tabela Delta existente.
  • Pseudónimo

    Defina um pseudónimo de mesa.

  • WHERE

    Filtrar as linhas por predicado.

    O WHERE predicado suporta subqueries, incluindo IN NOT IN EXISTS NOT EXISTS subqueries, incluindo subqueries, e scalar. Não são suportados os seguintes tipos de subqueries:

    • Subqueries aninhados, isto é, um subquery dentro de outro subquery
    • NOT IN subquery dentro de um OR , por exemplo, a = 3 OR b NOT IN (SELECT c from t)

    Na maioria dos casos, pode reescrever NOT IN subqueries utilizando NOT EXISTS . Recomendamos que a utilização NOT EXISTS sempre que possível, pois DELETE com NOT IN subqueries pode ser lenta.

Exemplo

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

Subquery Exemplos

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