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.