别人调用我写的接口批量插入数据的问题 谢谢

1.我写了一个接口,别人调用后可直接往我数据库里插入数据,接口的参数是一个List
2.在插入的过程中,对方会因为网络超时多次给我推重复数据
3.现在我的做法是每次插入之前先查询一边,重复了就不插入,并且数据库也设置了主键
4.我的问题如下:

  • 因为参数是List集合,当集合里有某几条数据重复了,我该如何通知接口调用方是哪几条重复了?

  • 因为不是单条插入,可以插入一条返回一个响应

  • 还是说将接口写成插入一条就响应一条的方式?

谢谢

阅读 7.3k
4 个回答

你可以预检查,没问题,而且也是应该做的。

但通知的部分需要做点事情,比如说,返回结果的时候只把插入成功的数据(全部数据内容或者可辨识的字段皆可)返回给客户端,这样由客户端决定那些插入不成功的该怎么办(再插入一遍,或者提示用户)。

调用你的接口后, 接口可以提供响应信息, 你可以将重复的数据放到响应信息里.
从效率的角度出发, 当然是批量插入然后统一返回响应信息比较合理

批量插入就批量响应,此处分为两种情况:

  1. 只插入某几条无意义:
    那就提前检查一下,如果发现有问题的,统一不给插入,并且返回对应结果。

  2. 插入某几条就可以:
    那就插入可以插入的,出错的返回出错的几条即可。

个人感觉还是看需求吧,如果需求是要么都成功,要么都失败的话,那就只能拿出参数中的唯一标识先查一下数据库了,有重复的直接返回错误就行,如果只是单纯返回重复记录的话,记录一下重复行的下标不就可以么?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题