Sobes.tech
Middle

Qual è la differenza tra DELETE e TRUNCATE in SQL?

sobes.tech AI

Risposta dell'AI

Le principali differenze tra DELETE e TRUNCATE in SQL:

  • DELETE elimina le righe da una tabella una per una e può avere una condizione WHERE. L'operazione viene registrata nel log, consentendo di annullare le modifiche (ROLLBACK).
  • TRUNCATE elimina tutte le righe di una tabella in modo completo, senza possibilità di specificare una condizione. È un'operazione più veloce perché non registra l'eliminazione di ogni riga singolarmente, ma resetta le pagine dei dati.

Esempio:

DELETE FROM users WHERE age < 18; -- eliminerà solo gli utenti con meno di 18 anni
TRUNCATE TABLE users; -- eliminerà tutti gli utenti contemporaneamente

Inoltre, TRUNCATE di solito resetta i contatori di auto-incremento, mentre DELETE no.