Partilhar via


DELETE FROM

Aplica-se a: Marque Sim Databricks SQL Marque Sim Databricks Runtime

Exclui as linhas que correspondem a um predicado. Quando nenhum predicado é fornecido, exclui todas as linhas.

Esta instrução só é suportada para tabelas Delta Lake.

Sintaxe

DELETE FROM table_name [table_alias] [WHERE predicate]

Parâmetros

  • table_name

    Identifica uma tabela existente. O nome não deve incluir uma especificação temporal.

    table_name não deve ser uma mesa estrangeira.

  • table_alias

    Defina um alias para a tabela. O alias não deve incluir uma lista de colunas.

  • EM QUE

    Filtrar linhas por predicado.

    O WHERE predicado suporta subconsultas, incluindo IN, NOT IN, EXISTS, NOT EXISTSe subconsultas escalares. Os seguintes tipos de subconsultas não são suportados:

    • Subconsultas aninhadas, ou seja, uma subconsulta dentro de outra subconsulta
    • NOT IN subconsulta dentro de um OR, por exemplo, a = 3 OR b NOT IN (SELECT c from t)

    Na maioria dos casos, você pode reescrever NOT IN subconsultas usando NOT EXISTSo . Recomendamos o uso NOT EXISTS sempre que possível, pois NOT IN DELETE as subconsultas podem ser lentas.

Exemplos

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