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.