Middle
Jaka jest różnica między DELETE a TRUNCATE w SQL?
sobes.tech AI
Odpowiedź od AI
Główne różnice między DELETE a TRUNCATE w SQL:
- DELETE usuwa wiersze z tabeli pojedynczo i może mieć warunek
WHERE. Operacja jest logowana, co pozwala na cofnięcie zmian (ROLLBACK). - TRUNCATE usuwa wszystkie wiersze z tabeli w całości, bez możliwości podania warunku. Jest to szybsza operacja, ponieważ nie loguje usunięcia każdego wiersza osobno, a resetuje strony danych.
Przykład:
DELETE FROM users WHERE age < 18; -- usunie tylko użytkowników poniżej 18 lat
TRUNCATE TABLE users; -- usunie wszystkich użytkowników od razu
Ponadto, TRUNCATE zazwyczaj resetuje liczniki autoinkrementacji, a DELETE nie.