建唯一索引保证并发时,多线程插入数据的业务上的一致性

在项目中遇到并发导入excel数据到同一张表, 
最初没有设置unique索引,导致在多线程并发导入excel数据的时候,业务上要求供应商代码不重复的字段,出现了重复,在这张数据表维护的时候,只有逻辑删除,不会物理删除,因此最开始没有去创建供应商代码的unique索引.

单纯的对供应商代码做unique索引也是不能满足要求的

因为失效删除的数据是打了标记的,有效的相同供应商代码还是可以插入进来.

后来想到了加上一个删除时间Delete——time 
默认值为0 
删除时把当前的系统时间毫秒存到这个字段,有效的数据Delete_time就为0

在删除并发时候,毫秒数一样会提示用户稍后删除. 
这样就实现了多线程插入数据保证一致性的问题

然后联合业务需求不能重复的字段建立联合索引 
如下图:

这里就是建立的唯一索引

转载于:https://blog.csdn.net/a417074865/article/details/50609025 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值