項目 | 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觸發器。