为了账号安全,请及时绑定邮箱和手机立即绑定

web并发,多线程访问对数据库进行插入操作,主键冲突。

页面上传多个文件(比如6个),文件上传好后页面会获得这个6个文件的id。

上传到文件服务器后。。文件服务器会对文件进行处理,会发送请求到业务服务器,参数为文件的唯一id。业务服务器的A类中的insert1()会插入B表,插入前会先查询是否有该id的数据,如果有就会更新某个值。

6个文件全部上传好后页面跳转时会把这个6个id 发送到业务服务器,业务服务器的A类中的insert2()会将id插入B表,插入前会先查询是否有该id的数据,如果有就会更新某个值。

那么问题来了,我在2步骤的查询B表没有该id值,然后执行插入B表;但在3步骤时也查询B表没有该id值,于是也插入B表。这个时候就报了主键冲突。

如果给这个两个方法都加了锁,虽然可以解决,但感觉会变的很慢,有没有更好的解决办法@Arthur老师?

正在回答

2 回答

使用UUID来创建唯一id,不会重复的

0 回复 有任何疑惑可以回复我~

萌新表示能实现就行。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

web并发,多线程访问对数据库进行插入操作,主键冲突。

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号