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

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

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

  • 写回答

4条回答 默认 最新

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

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

    评论

报告相同问题?

问题事件

  • 创建了问题 7月21日