您的位置:首页 > 游戏 > 手游 > 清理测试数据用truncate还是delete

清理测试数据用truncate还是delete

2024/11/18 7:56:29 来源:https://blog.csdn.net/qq_23365135/article/details/140181502  浏览:    关键词:清理测试数据用truncate还是delete

truncate和delete的区别,我相信大家都清楚。
truncate会清空表的全部数据,且自增主键会重置;而delete可以按条件删除,且自增主键不会重置。

我们日常测试过程中经常要删除掉测试数据,那么应该用truncate删,还是用delete删呢?

最近测试中就发现一个诡异的问题,排查了下来原来是我用truncate清理数据导致的。实际的问题有点绕,这里为了大家方便理解,我转化一下。

比如我有一张订单表,关联订单行,在测试过程中,我创建了一个订单,结果多出了几条不是我创建的订单行数据。原因是我清理测试数据时,为了方便使用truncate清理了order表,但是没有清理order_entry,order表的自增主键重置了,所以恰好新的订单ID就跟旧的订单行产生了关联。

truncate会导致自增主键重置,有利有弊,好处是清理的彻底,坏处是你最好把它的关联边表一并清理,否则就可能会发生上面这这种问题,给你的测试带来阻碍。

这种情况使用delete删除数据就可以了,只需要把主表数据delete,关联数据可以不用清理。

但是对于不存在关联的表,还是可以大胆使用truncate清理的。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com