ELIMINAR DE
Aplica-se a: Databricks SQL Databricks Runtime
Elimina as linhas que correspondem a um predicado. Quando não é fornecido nenhum predicado, elimina todas as linhas.
Esta instrução só é suportada para tabelas do Delta Lake.
Sintaxe
DELETE FROM table_name [table_alias] [WHERE predicate]
Parâmetros
-
Identifica uma tabela existente. O nome não pode incluir uma especificação temporal.
table_name
não pode ser uma tabela externa. -
Defina um alias para a tabela. O alias não pode incluir uma lista de colunas.
-
Filtrar linhas por predicado.
O
WHERE
predicado suporta subconsultas, incluindoIN
,NOT IN
,EXISTS
,NOT EXISTS
e 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 umOR
, por exemplo,a = 3 OR b NOT IN (SELECT c from t)
Na maioria dos casos, pode reescrever
NOT IN
subconsultas comNOT EXISTS
. Recomendamos que utilizeNOT EXISTS
sempre que possível, uma vezDELETE
que asNOT IN
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')