mysql 多条 update 语句怎么保证同时成功同时失败呢?
java 分布式 springcloud项目 数据库是mysql,我现在有一张产品库存表, 里面有多个产品,每行记录了这个产品的详情( ID 代码 名称 类型 库存量) 产品库存表 同一个产品只会存在一条记录。 产品库存表 大致结构
create table 产品库存表 ( id .. 产品代码.. 产品名称.. 产品类型.. 库存量.. 是否有效 修改时间 创建时间 ) 现在前端页面有个操作,大致就是将这些产品 分到一个产品包里 这个产品包 就是一个选择了不同产品和其数据的产品集合 产品包分配表另建的一张表
create table 产品包分配统计表( id 产品包名称 产品包 ID 创建时间 是否有效 ) 产品包明细表
create table 产品包分配统计表( id 产品名称, 产品 ID , 产品分配数量。 产品包名称 产品包 ID 创建时间 是否有效 ) 简而言之,就是从 创建一个产品包 包含多个产品, 自己指定分配的产品数量,
所以 我从 产品的主库存 扣除分配给产品包的产品库存的时候, 需要保证这些产品修改 同时成功和失败,这样我好控制并发。
update 产品表 set 产品库存 = 产品库存 - 分配数量 where 产品库存 > 分配数量 这是一条产品更新的 语句,我现在想让 这些选了的产品 更新操作 同时成功,或者同时不执行,
我尝试 将多个 update 放在一行执行
update 产品表 set 产品库存 = case 条件(产品类型) when xxx then 对应的数量 when xxx then 对应的产品数量 ... end when 产品库存 > case 产品类型 when xxx then 对应的数量 update 语句 条件不成立的时候 只会 让影响的行数 是 0 ,从而让满足条件的执行了,没满足的没执行。
各位有什么好办法吗
