0
点赞
收藏
分享

微信扫一扫

[MySQL]MySQL如何做到无则插入有则更新(upsert)

一叶轻舟okok 2021-12-20 阅读 95

问题场景

在排除一个生产BUG的时候发现,有个关于库存调拨的业务出现了唯一键冲突,最终定位到是设计表的时候,DDL设置了一个组合唯一索引。在重复插入一条业务数据的时候,触发了这个数据库的DUPLICATE KEY.
解决的办法很简单,做到"无则插入,有则更新"即可。

ON DUPLICATE KEY UPDATE

MySQL提供了ON DUPLICATE KEY UPDATE来解决这个问题.

insert into
    stock_prededuct_record(num,stockNumId,bizOrderId,bizOrderDetailId,bizType,bizNo,state,remark,stockOperateLogId,createTime)
    values
    (5,1,0,36277777,3,'XXX',1,'测试数据',0,now())
    ON DUPLICATE KEY UPDATE num = num + VALUES(num);

如果文章帮到了你解决问题,给作者点个赞吧~

举报

相关推荐

0 条评论