SQL 中 DELETE 與 TRUNCATE 區別

在mysql數據庫中,DELETE和TRUNCATE 語句都可以刪出數據,但是TRUNCATE和DELETE有以下幾點區別:


1、TRUNCATE在各種表上無論是大的還是小的都非常快。如果有ROLLBACK命令DELETE將被撤銷,而TRUNCATE則不會被撤銷。  2、TRUNCATE是一個DDL語言,向其他所有的DDL語言一樣,他將被隱式提交,不能對TRUNCATE使用ROLLBACK命令。  3、TRUNCATE將重新設置高水平線和所有的索引。在對整個表和索引進行完全瀏覽時,經過TRUNCATE操作後的表比DELETE操作後的表要快得多。  4、TRUNCATE不能觸發任何DELETE觸發器。  5、不能授予任何人清空他人的表的權限。  6、當表被清空後表和表的索引講重新設置成初始大小,而delete則不能。  7、DELETE語句可以通過WHERE對要刪除的記錄進行選擇。而使用TRUNCATE TABLE將刪除表中的所有記錄。因此,DELETE語句更靈活。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章