Sobes.tech
Middle

Qual é a diferença entre DELETE e TRUNCATE em SQL?

sobes.tech IA

Resposta da IA

As principais diferenças entre DELETE e TRUNCATE em SQL:

  • DELETE remove linhas de uma tabela uma a uma e pode ter uma condição WHERE. A operação é registada, permitindo desfazer as alterações (ROLLBACK).
  • TRUNCATE remove todas as linhas de uma tabela de forma completa, sem possibilidade de especificar uma condição. É uma operação mais rápida, pois não regista a eliminação de cada linha individualmente, mas reinicia as páginas de dados.

Exemplo:

DELETE FROM users WHERE age < 18; -- remove apenas utilizadores com menos de 18 anos
TRUNCATE TABLE users; -- remove todos os utilizadores de uma só vez

Além disso, o TRUNCATE normalmente reinicia os contadores de auto-incremento, ao passo que o DELETE não.