Hyngi 2021-07-21 18:51 采纳率: 0%
浏览 37

mysql 新增数据的先决条件是查询这条数据不存在,如何避免并发问题

假设这么一个场景,我觉得这个场景应该也普遍存在
新增一条数据的前提是这条记录不存在,例如:一个病人只能有一个床位号,在数据库中对应的就是病人id和床位id
那么A 操作人 第一次查询病人没有床位id 则新增一个关联表数据和床位id对应。并发事务没提交,或者事务即将提交
测试B 操作人 查询病人没有床位id (A事务没提交或即将提交)B事务新增床位号,这样就导致一个病人有了两个床位号
在并发场景下 可能就不只有两个床位号了。
目前自己想到的解决办法是根据病人和床位id 形成唯一索引,除此之外,想问有没有好的解决方案

  • 写回答

4条回答 默认 最新

  • CSDN专家-sinJack 2021-07-21 18:54
    关注

    你这明显就是资源抢占问题。新增的接口要用同步锁来控制。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月21日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度