社区
Oracle
帖子详情
怎么保证并发操作时,唯一字段不会被重复?
dawangcat
2019-09-11 10:17:30
做一个资产管理系统,前端每次新增一件资产就会自动生成一个新的资产编号(数据库中要求资产编号唯一),批量新增后再保存到数据库,为了保证并发操作时资产编号不会重复占用,现在的做法是:前端新增记录时,先在表中插入新生成的资产编号,状态设为0,提交的时候更新记录,状态改为1,但是会出现一个问题:如果因为异常导致页面关闭,这条记录会一直存在数据库中,请问有什么好的方法解决?比如事务,锁什么的,我自己查了资料,还是没有思路,想请教下各位,感谢。
...全文
380
3
打赏
收藏
怎么保证并发操作时,唯一字段不会被重复?
做一个资产管理系统,前端每次新增一件资产就会自动生成一个新的资产编号(数据库中要求资产编号唯一),批量新增后再保存到数据库,为了保证并发操作时资产编号不会重复占用,现在的做法是:前端新增记录时,先在表中插入新生成的资产编号,状态设为0,提交的时候更新记录,状态改为1,但是会出现一个问题:如果因为异常导致页面关闭,这条记录会一直存在数据库中,请问有什么好的方法解决?比如事务,锁什么的,我自己查了资料,还是没有思路,想请教下各位,感谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dawangcat
2019-09-11
打赏
举报
回复
引用 1 楼 卖水果的net 的回复:
使用序列,能解决你的这个问题。
但是,可能会造成“断号”的情况,能接受不?
大致明白了,谢谢,我先试下。
卖水果的net
2019-09-11
打赏
举报
回复
使用序列,能解决你的这个问题。 但是,可能会造成“断号”的情况,能接受不?
weixin_40290083
2019-09-11
打赏
举报
回复
oracle使用序列,它没有属性自增的设置,mysql有,无论使用自增还是序列,如果有删除,就会存在断号,自己定义容易造成冲突
幂等性与
并发
(表单
重复
提交和
并发
增删改及校验
唯一
操作
场景)
博客介绍了
并发
操作
中实现幂等性的方法。
并发
更新用乐观锁(version或timestamp),
并发
插入借redis校验tokenid防
重复
提交,
并发
校验
唯一
用redis的setnx方式避免资源
重复
录入。强调
并发
开发要找到锁,
保证
操作
结果一致。
保证
RabbitMQ消息
不会
被
重复
消费
本文详细探讨了RabbitMQ消息
重复
消费的原因,并从RabbitMQ层、业务层、生产者以及监控与补偿四个方面提出了具体的解决方案。包括手动ACK、消息
唯一
ID、限制重试次数、幂等性设计、分布式锁、本地去重表、幂等发送、Broker确认机制、日志记录和定期校对等策略,旨在确保消息处理的准确性和可靠性。
两个事务
并发
写,能
保证
数据
唯一
吗?
文章探讨了在
并发
写入场景下如何
保证
数据
唯一
性。通过举例用户注册
时
避免电话号码
重复
,指出简单的事务处理无法解决
并发
问题。接着,介绍了数据库的
唯一
索引机制,它是如何通过避免使用change buffer来确保数据在内存中检查并防止
重复
插入,从而
保证
数据
唯一
。最后,提到了change buffer在某些情况下可能对普通索引的性能产生的负面影响,并留下问题供读者思考。
MySQL 根据多
字段
查询
重复
数据
本文详细介绍了如何在MySQL中根据单个和多个
字段
查找
重复
数据,提供代码示例,并讨论了
并发
操作
可能导致的
重复
问题及其解决方案。
高
并发
情况下,创建和更新
时
,如何
保证
数据准确
本文围绕高
并发
情况下数据创建和更新
时
如何
保证
准确展开。首先要确保代码无bug,正确使用数据库事务。对于
重复
请求,可设置web端防
重复
提交、
保证
服务端接口幂等性,利用数据库主键
唯一
约束。还介绍了ABA问题及解决办法,即增加版本号实现幂等更新。
Oracle
17,134
社区成员
55,258
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章