1.我写了一个接口,别人调用后可直接往我数据库里插入数据,接口的参数是一个List
2.在插入的过程中,对方会因为网络超时多次给我推重复数据
3.现在我的做法是每次插入之前先查询一边,重复了就不插入,并且数据库也设置了主键
4.我的问题如下:
因为参数是List集合,当集合里有某几条数据重复了,我该如何通知接口调用方是哪几条重复了?
因为不是单条插入,可以插入一条返回一个响应
还是说将接口写成插入一条就响应一条的方式?
1.我写了一个接口,别人调用后可直接往我数据库里插入数据,接口的参数是一个List
2.在插入的过程中,对方会因为网络超时多次给我推重复数据
3.现在我的做法是每次插入之前先查询一边,重复了就不插入,并且数据库也设置了主键
4.我的问题如下:
因为参数是List集合,当集合里有某几条数据重复了,我该如何通知接口调用方是哪几条重复了?
因为不是单条插入,可以插入一条返回一个响应
还是说将接口写成插入一条就响应一条的方式?
批量插入就批量响应,此处分为两种情况:
只插入某几条无意义:
那就提前检查一下,如果发现有问题的,统一不给插入,并且返回对应结果。
插入某几条就可以:
那就插入可以插入的,出错的返回出错的几条即可。
个人感觉还是看需求吧,如果需求是要么都成功,要么都失败的话,那就只能拿出参数中的唯一标识先查一下数据库了,有重复的直接返回错误就行,如果只是单纯返回重复记录的话,记录一下重复行的下标不就可以么?
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
你可以预检查,没问题,而且也是应该做的。
但通知的部分需要做点事情,比如说,返回结果的时候只把插入成功的数据(全部数据内容或者可辨识的字段皆可)返回给客户端,这样由客户端决定那些插入不成功的该怎么办(再插入一遍,或者提示用户)。