數據庫刪除數據 truncate 與 delete


 

delete from table where

直接刪除表中的某一行數據,並且同時將該行的刪除操作作為事務記錄在日志中保存以便進行進行回滾操作。所以delete相比較truncate更加占用資源,數據空間不釋放,因為需回滾。對table和view都能操作

truncate table

一次性地從表中刪除所有的數據(釋放存儲表數據所用的數據頁來刪除數據)並不把單獨的刪除操作記錄記入日志保存(只在事務日志中記錄 頁的釋放),因此也不能回滾,不能恢復數據,在刪除的過程中不會激活與表有關的刪除觸發器,占用資源更加少,速度更快。數據空間會釋放,這個表和索引所占用的空間會恢復到初始大小。只能操作沒有關聯視圖的table

drop table

刪除的是整個表,包括表的結構,數據,定義。永久抹去,空間釋放。對table和view都能操作

 

由於 TRUNCATE TABLE 不記錄在日志中,所以它不能激活觸發器,對於外鍵(foreignkey )約束引用的表,不能使用 truncate table,而應使用不帶 where 子句的 delete 語句。
truncate table不能用於參與了索引視圖的表


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM