DELETE與TRUNCATE有什麼不同
刪除表中的數據的方法有delete,truncate,
它們都是刪除表中的數據,而不能刪除表結構,delete 可以刪除整個表的數據也可以刪除表中某一條或N條滿足條件的數據,而truncate只能刪除整個表的數據,一般我們把delete 操作叫作刪除表,而truncate操作叫作截斷表.
truncate 操作與 delete 操作對比
操作
回滾
高水線
空間
效率
Truncate
不能
下降
回收
快
delete
可以
不變
不回收
慢
TRUNCATE和DELETE有以下幾點區別
1、TRUNCATE在各種表上無論是大的還是小的都非常快。如果有ROLLBACK命令DELETE將被撤銷,而TRUNCATE則不會被撤銷。
2、TRUNCATE是一個DDL語言,向其他所有的DDL語言一樣,他將被隱式提交,不能對TRUNCATE使用ROLLBACK命令。
3、TRUNCATE將重新設置高水平線和所有的索引。在對整個表和索引進行完全浏覽時,經過TRUNCATE操作後的表比DELETE操作後的表要快得多。
4、TRUNCATE不能觸發任何DELETE觸發器。
5、不能授予任何人清空他人的表的權限。
6、當表被清空後表和表的索引將重新設置成初始大小,而delete則不能。
7、不能清空父表。