truncate與drop,delete的對比

2022-06-03 01:57:12 字數 662 閱讀 5314

1.truncate使用語法

truncate的作用是清空表或者說是截斷表,只能作用於表。truncate的語法很簡單,後面直接跟表名即可,例如:truncate table tbl_name或者truncate tbl_name

執行truncate語句需要擁有表的drop許可權,從邏輯上講,truncate table類似於delete刪除所有行的語句或drop table然後再create table語句的組合。為了實現高效能,它繞過了刪除資料的dml方法,因此,它不能回滾。儘管truncate table與delete相似,但它被分類為ddl語句而不是dml語句。

2.truncate與drop,delete的對比

上面說過truncate與delete,drop很相似,其實這三者還是與很大的不同的,下面簡單對比下三者的異同。

3.truncate使用場景及注意事項

通過前面介紹,我們很容易得出truncate語句的使用場景,即該錶資料完全不需要時可以用truncate。如果想刪除部分資料用delete,注意帶上where子句;如果想刪除表,當然用drop;如果想保留表而將所有資料刪除且和事務無關,用truncate即可;如果和事務有關,或者想觸發trigger,還是用delete;如果是整理表內部的碎片,可以用truncate然後再重新插入資料。

truncate與delete drop的區別

注意事項 1.在oracle中資料刪除後還能回滾是因為它把原始資料放到了undo表空間。2.dml語句使用undo表空間,ddl語句不使用undo,而delete是dml語句,truncate是ddl語句,另外ddl語句是隱式提交.所以truncate操用不能回滾,而delete操作可以。trunc...

drop,delete與truncate的區別

drop直接刪掉表 truncate刪除表中資料,再插入時自增長id又從1開始 delete刪除表中資料,可以加where字句。1 delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中儲存以便進行進行回滾操作。truncate table 則一次性地從表中...

truncate與delete的區別

truncate與delete的區別 truncate table命令將快速刪除資料表中的所有記錄,但保留資料表結構。這種快速刪除與delete from 資料表的刪除全部資料表記錄不一樣,delete命令刪除的資料將儲存在系統回滾段中,需要的時候,資料可以回滾恢復,而truncate命令刪除的資料...