写在前面:这个只作为知识点,不作为应用推荐。
场景:开发过程中,总有些垃圾数据影响着测试,然后想省事“清空表”重新填入新数据,或者想测试没有数据的状态,通常我们会在navicat上对表进行如下操作;
“清空表”或者“截断表”, 对应的SQL语句为:
delete table 和
truncate table
发现,表数据都没有了,两个都可以用作数据清空的方法,有何区别;
truncate之后,表和索引占用的空间会恢复到初始大小。
比较直观的感受就是,truncate之后,如果有自增列,该列的“自动递增”会回到1。而delete就不一样了,比如delete table之前自动递增值到了99,那么后面有数据插入的时候,自增列值会从99开始。
写在最后,线上/正式环境中,不能用不能用不能用,至少不建议。
云教务管理员
用IT武装教育!
梁峰 2019-05-24
我是第一条评论