美文网首页
mysql数据库插入信息 如果存在则修改某些值

mysql数据库插入信息 如果存在则修改某些值

作者: lv_shun | 来源:发表于2019-05-07 16:26 被阅读0次

题目比较难理解,懂得自然懂。

需求

设计库存数据表时,字段有id、store_id、goods_id、count

字段 描述
id id
store_id 仓库id
goods_id 商品id
count 数量

这几个字段是关键,通常情况仓库和商品联合唯一,就是某个仓库的某件商品只会有一条记录。然后需求是需要入库出库时更新库存记录,而且时批量更新。我作为小白的思路是:1. 查询是否有记录 2.有则update数量,没有则insert一条。但是批量操作很麻烦,频繁查询、插入、修改,写的麻烦运行效率也不高。作为一个懒货当然要想个简单的方法。

实现

找度娘帮忙,找到了一个INSERT... ON DUPLICATE KEY UPDATE语法,大概的意思就是前提要设置一个unique key,唯一识别的字段,我这里面对应的是store_id和goods_id联合唯一识别。设置方法很简单,不知道的百度一下。然后就是执行插入操作了。语句如下:

insert into test
(a,b,c)
VALUES
(1,1,3),
(1,2,4),
(2,1,5)
ON DUPLICATE KEY UPDATE c=c+VALUES(c)

随便建立个test表,目标是a和b字段联合唯一,如果存在则将c的值叠加,如果不存在则新建一条。简单验证了一下没啥问题。

总结

记录一下,如果用得上的可以参考下

相关文章

网友评论

      本文标题:mysql数据库插入信息 如果存在则修改某些值

      本文链接:https://www.haomeiwen.com/subject/wifyoqtx.html