天天看點

mysql delete和truncate差別

項目 delete truncate
添加where條件 可以添加 不可以添加
執行效率 略高
自增長列

delete删除後,插入資料的自增長

列值從斷點開始

truncate删除後,插入資料的自增長

列值由1開始

傳回值 執行後有傳回值 執行後沒有傳回值
事務復原 可以復原 不能復原

一、靈活性:delete可以條件删除資料,而truncate隻能删除表的所有資料;

delete from table_test where ... 

truncate table table_test 

二、效率:delete效率低于truncate,delete是一行一行地删除,truncate會重建表結構,

三、事務:truncate是DDL語句,需要drop權限,是以會隐式送出,不能夠rollback;delete是DML語句,可以使用rollback復原。

四、觸發器:truncate 不能觸發任何Delete觸發器;而delete可以觸發delete觸發器。

繼續閱讀