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

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

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

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

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

谢谢

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

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

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

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

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

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

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注