DELETE ve TRUNCATE her iki komutla tüm tablo verisini silebilirsiniz.
Ama aralarında büyük farklar var aşağıda açıklamaya çalıştım.
DELETE ve TRUNCATE FARKLARI
– DELETE ile tablodan WHERE şartı ile şartınıza uyan kayıtları silebilirsiniz.
Ya da “Delete from mytable”; diyerek tüm satırları silebilirsiniz.
Ama TRUNCATE komutu ile şart belirtemezsiniz ve tüm tabloyu boşaltır.
“TRUNCATE table mytable”;
– DELETE işleminden sonra COMMIT ya da ROLLBACK yapmanız gerekir,
Ama TRUNCATE işlemi AUTOCOMMIT’dir,yaptığınız değişikliği commit eder geri alamasınız.
– Tablodan kayıt silme için yazılan triggerlar varsa delete işleminde devreye girer,
ama TRUNCATE işlemi triggerlara takılmaz.
– TRUNCATE işlemi LOG üretmediği(UNDO) için DELETE’e göre daha hızlı çalışır.
– DELETE bir DML komutudur, TRUNCATE DDL komutudur.(bu yüzden autocommit yapar)
Tablonuzdaki veriniz önemsiz ve büyük boyutlardaysa TRUNCATE işlemini tavsiye ederim.