题目比较难理解,懂得自然懂。
需求
设计库存数据表时,字段有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的值叠加,如果不存在则新建一条。简单验证了一下没啥问题。
总结
记录一下,如果用得上的可以参考下
网友评论