delete table 和 truncate table的区别

技术分享

2018-07-16

50

0

写在前面:这个只作为知识点,不作为应用推荐。

场景:开发过程中,总有些垃圾数据影响着测试,然后想省事“清空表”重新填入新数据,或者想测试没有数据的状态,通常我们会在navicat上对表进行如下操作;

“清空表”或者“截断表”, 对应的SQL语句为:

delete table 和

truncate table

发现,表数据都没有了,两个都可以用作数据清空的方法,有何区别;

truncate之后,表和索引占用的空间会恢复到初始大小。

比较直观的感受就是,truncate之后,如果有自增列,该列的“自动递增”会回到1。而delete就不一样了,比如delete table之前自动递增值到了99,那么后面有数据插入的时候,自增列值会从99开始。

 

写在最后,线上/正式环境中,不能用不能用不能用,至少不建议。

 

 

发表评论

全部评论:0条

云教务管理员

用IT武装教育!