首页 > 数码专栏 > 正文

数据库delete和truncate区别

数码专栏 时间:2024-07-26 23:01:29

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不能够激活触发器,因为该操作不记录各行删除。

郑重声明:图文由自媒体作者发布,我们尊重原作版权,但因数量庞大无法逐一核实,图片与文字所有方如有疑问可与我们联系,核实后我们将予以删除。