天天看點

資料庫中truncate與delete的差別

    在資料庫中,有兩種方法清空表中的資料:truncate與delete。如:想要清空Course表,下列兩個語句都能實作。

TRUNCATE TABLE "Course" ;
DELETE  FROM "Course" ;
           

    那麼,truncate與delete有哪些差別呢?

    1.truncate 是DDL(資料定義)語句,相當于重新定義一張新表,把原先的表丢棄了,是以執行速度快。delete 是DML語句,逐條删除資料,是以執行速度較慢。

    2.truncate不寫伺服器log,delete寫伺服器log,也是truncate效率比delete高的原因。

    3.truncate不激活trigger(觸發器),但是會重置Identity(辨別列、自增字段),相當于自增列會被置為初始值,又重新從1開始記錄,而不是接着原來的ID數。delete删除以後,Identity依舊是接着被删除的最近的那一條記錄ID加1後進行記錄。

    4.如果隻需删除表中的部分記錄,隻能使用delete語句并用where條件過濾。