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

发布于 2022-09-02 20:54:34 字数 300 浏览 15 评论 0

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

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

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

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

谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

哽咽笑 2022-09-09 20:54:35

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

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

2022-09-09 20:54:35

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

初懵 2022-09-09 20:54:35

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

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

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

我纯我任性 2022-09-09 20:54:35

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文