我的表格格式为StoreID | ItemID | ItemName |数量StoreID和ItemID是Pkeys.Im尝试执行mysql查询并插入StoreID ='ST1'ItemsID ='IT1'ItemName ='IT'Qty = 1000但是这里我想插入记录如果不存在,如果存在则更新Qty =数量+ 100.我尝试使用mysql替换和重复密钥更新。它做我想做的事情,除了数量没有增加。下面的两个查询在第一次执行时将Qty设置为0。因为我可以理解这是因为第一次没有重复的条目。 我想要做的是添加记录,如果不存在给定的数量,并在每次执行后只更新数量
INSERT INTO Store_Items (storeID, itemId,itemName)
VALUES ('STR004', '4534','K40')
ON DUPLICATE KEY UPDATE currentStock = currentStock + 100;
REPLACE INTO Store_Items
SET storeID ='STR004',
itemId='4534',
itemName='K40',
SUM(currentStock) as 'Total',
reorderLevel=1000;
答案 0 :(得分:1)
如果我理解正确,您的查询应该是
INSERT INTO Store_Items (storeID, itemId, itemName, Qty)
VALUES ('STR004', '4534','K40', 100)
ON DUPLICATE KEY UPDATE Qty = IFNULL(Qty, 0) + 100;
首次插入后:
+---------+--------+----------+------+
| storeID | itemId | itemName | Qty |
+---------+--------+----------+------+
| STR004 | 4534 | K40 | 100 |
+---------+--------+----------+------+
第二次插入后:
+---------+--------+----------+------+
| storeID | itemId | itemName | Qty |
+---------+--------+----------+------+
| STR004 | 4534 | K40 | 200 |
+---------+--------+----------+------+
<强> SQLFiddle 强>