Sobes.tech
Middle

SQL-də DELETE və TRUNCATE arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

SQL-də DELETETRUNCATE arasındakı əsas fərqlər:

  • DELETE cədvəldən sətirləri sətir-sətir silir və WHERE şərti ilə ola bilər. Əməliyyat qeydiyyata alınır, bu da dəyişikliklərin geri alınmasına (ROLLBACK) imkan verir.
  • TRUNCATE bütün sətirləri tamamilə silir, şərt göstərmək mümkün deyil. Bu, daha sürətli əməliyyatdır, çünki hər sətirin silinməsi qeydiyyata alınmır, əvəzinə məlumat səhifələri sıfırlanır.

Nümunə:

DELETE FROM users WHERE age < 18; -- yalnız 18-dən kiçik istifadəçiləri siləcək
TRUNCATE TABLE users; -- bütün istifadəçiləri birdəfəlik siləcək

Həmçinin, TRUNCATE adətən avtomatik artım sayğaclarını sıfırlayır, DELETE isə sıfırlamır.