微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

多个实例访问和更新表上相同字段的锁定机制

如何解决多个实例访问和更新表上相同字段的锁定机制

我有一个 spring-boot 应用程序,它处理订单并放置在三个节点上并同时工作。为了处理订单,他们必须转到商店表并获取放置在该商店的最后一个订单 ID。它不是通用订单 ID,而是该商店下订单的数量。 以下是有问题的表结构:

表格:商店

商店编号:字符串

storeOrderNum: int

StoreInfo:这是店铺信息

每个实例都会获取 storeOrderNum 并将其增加 1。

我们使用的更新查询是:

UPDATE store

SET store_order_num =  (SELECT CASE

WHEN store_order_num > 9998 OR store_order_num IS NULL THEN 1

ELSE store_order_num + 1

END

FROM store

WHERE store_num = #{store_num}) WHERE store_num = #{store_num}

我想实现一种锁定机制,以便多个实例无法同时读取或写入特定存储的同一列。功能方面,如果两个实例都进行了相同的更新,则应等待另一个实例完成。任何方向都会有所帮助。谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。