Sobes.tech
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.