首页 / 科技数码 / 正文

truncate和delete的区别 

truncate和delete的主要区别如下:

1. 内存空间:truncate删除数据后重新写数据会从1开始,而delete删除数据后只会从删除前的最后一行续写。因此,truncate在内存空间上更省空间。

2. 处理速度:truncate直接从1开始,即全部清空开始,而delete需要先得到当前行数,从而进行续写。因此,truncate删除速度比delete快。

3. 语句类型:delete属于DML语句,而truncate属于DDL语句。这导致了它们在事务中的不同现象:delete在事务中,因为属于DML语句,所以可以进行回滚和提交操作(由操作者),而truncate在事务中,执行后会自动commit,所以不可以回滚。

4. 语法:delete可以在后续加上where进行针对行的删除,而truncate后面只能加上表名,直接删除表,无法where。

需要注意,truncate和drop不能够激活触发器,因为该操作不记录各行删除。

如有侵权请及时联系我们处理,转载请注明出处来自