在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語句更靈活。