一、不同點
1.truncate table 和 delete只刪除記錄不刪除表的結構,drop語句將刪除表的結構依賴的約束(constrain),觸發器(trigger),索引(index);
語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index);依賴於該表的存儲過程/函數將保留,但是變為invalid狀態
2.truncate之后的自增字段從頭開始計數了,而delete的仍保留原來的最在數值。
二、總結:
1.在速度上,一般來說,drop> truncate > delete。
2.在使用drop和truncate時一定要注意,雖然可以恢復,但為了減少麻煩,還是要慎重。
3.如果想刪除部分數據用delete,注意帶上where子句,回滾段要足夠大;
如果想刪除表,當然用drop;
如果想保留表而將所有數據刪除,如果和事務無關,用truncate即可;
如果和事務有關,或者想觸發trigger,還是用delete
如果是整理表內部的碎片,可以用truncate跟上reuse stroage,再重新導入/插入數據
不同點
