别人调用我写的接口批量插入数据的问题 谢谢
1.我写了一个接口,别人调用后可直接往我数据库里插入数据,接口的参数是一个List
2.在插入的过程中,对方会因为网络超时多次给我推重复数据
3.现在我的做法是每次插入之前先查询一边,重复了就不插入,并且数据库也设置了主键
4.我的问题如下:
因为参数是List集合,当集合里有某几条数据重复了,我该如何通知接口调用方是哪几条重复了?
因为不是单条插入,可以插入一条返回一个响应
还是说将接口写成插入一条就响应一条的方式?
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你可以预检查,没问题,而且也是应该做的。
但通知的部分需要做点事情,比如说,返回结果的时候只把插入成功的数据(全部数据内容或者可辨识的字段皆可)返回给客户端,这样由客户端决定那些插入不成功的该怎么办(再插入一遍,或者提示用户)。
调用你的接口后, 接口可以提供响应信息, 你可以将重复的数据放到响应信息里.
从效率的角度出发, 当然是批量插入然后统一返回响应信息比较合理
批量插入就批量响应,此处分为两种情况:
只插入某几条无意义:
那就提前检查一下,如果发现有问题的,统一不给插入,并且返回对应结果。
插入某几条就可以:
那就插入可以插入的,出错的返回出错的几条即可。
个人感觉还是看需求吧,如果需求是要么都成功,要么都失败的话,那就只能拿出参数中的唯一标识先查一下数据库了,有重复的直接返回错误就行,如果只是单纯返回重复记录的话,记录一下重复行的下标不就可以么?