我正在寻找在不同位置记录不同物品的库存。
理想情况下,我将仅引用项目 ID 和位置 ID 并在表格中指定数量。
样本数据
编号 | location_id | item_id | 数量 1 | 1 | 1 | 10 2 | 1 | 2 | 12 3 | 1 | 3 | 12 4 | 2 | 1 | 5 5 | 2 | 3 | 5 6 | 3 | 2 | 1
我正在寻找编写一个查询,该查询将根据位置和项目 ID 检查是否存在行,并根据需要更新或插入行。
我尝试了以下方法:
INSERT INTO `inventory` (`location_id`, `item_id`, `qty`)
VALUES('4', '300', '1')
ON DUPLICATE KEY UPDATE `qty` = `qty` + 1
但问题是它要求键值在每一列中都是主要的/唯一的。
关于我如何在一个声明中实现这一目标的任何想法?我需要使用 IF 吗?