Merhabalar,
Bu ifadedeyi az evvel bir uygulama esnasında kullanıyordum ve aklıma gfeldi sizlerede yararı dokunabilir diye buraya açıklamak istedim.
Truncate ifadesi ne iş yapar?
Truncate yaptığı işe bakılırsa, tabloyu drop etmeden içindeki tüm verileri silmeye yarar. Şimdi bazılarınızın aklına şu sopru gelebilir :
E zaten Delete bu iş için kullanılmıyor mu?
örn : "delete from XXX" (where ifadesi olmadan kullanılırsa evet tablodaki tüm verileri siler!!
Ama burada dikkat etmemiz gereken iki önemli nokta var. Hemde gerçekten çok önemli!!
Delete ile yaptığımız bu işlemde en son kaydımızın ID numarasının 250 olduğunu varsayalım. Tablodaki tüm verileri sildik ama yeni bir kayıt eklemek istediğimizde ID numarası 251 olacaktır. Ve bunu istemeyiz!!
Ayrıca en önemlisi, varsayalımki siz ilgili tablodan bir kayıt silindiğinde bi iş gerçekleşmesi için bir trigger yazdınız ve 250 kayıt silindi, dolayısıyla 250 kere bu trigger çalışacaktır.
Fakat TRUNCATE kullandığımızda tablomuzda ID numaralarınız tekrardan 1den başlayacak şekilde temizlenecektir ve hiç bir trigger bizi farkedemeyecek dolayısıyla tetiklenmeyecektir.
Aradaki farkları net ifade ettim sanıyorum..
Bu arada kullanımına örnek verecek olursak : "truncate table XTable"
Güzel anlatım olmuş. Teşekkürler.
YanıtlaSilBu yorum yazar tarafından silindi.
YanıtlaSilBir zamanlar yazdığım bir blogtu. Fakat kimse ilgilenmiyor diye hayıflanıyordum:) Rica ederim. umarım faydası olur..
YanıtlaSilhala işe yarıyor bloğunuz)
YanıtlaSilteşekkürler
thnx
YanıtlaSil