我有两张桌子:
stocklocations :( StockID,Quantity,SLNID)
StockDetail :( StockID,Quantity,SLNID,Type)
我想向db插入一个查询,以便在Type =' B'时更新所有stocklocations的数量。和StockID相等,SLNID相等 如果SLNID不相等 然后将StockID,Quantity,SLNID从stockdetail插入stocklocation 这有可能吗?
答案 0 :(得分:0)
使用INSERT ... ON DUPLICATE KEY UPDATE
INSERT INTO stocklocations (Quantity, SLNID) VALUES( '$quantity', SLNID) where TYPE='B' and StockId = SLNID and ON DUPLICATE KEY UPDATE Quantity=VALUES(Quantity+'$quantity');
答案 1 :(得分:0)
如果我的问题是正确的,如果stocklocations包含行stockID,SLNID,那么您想要更新数量,如果没有包含行。
如果是这种情况,那么您可以使用以下内容(假设您将密钥定义为(StockID,SLNID))
ON DUPLICATE KEY UPDATE `quantity`=`quantity`+1;
因此完整查询将如下所示:
INSERT INTO `stocklocations` (`StockID`, `SLNID`, `Quantity`)
VALUES (1, 1, 1)
ON DUPLICATE KEY UPDATE `quantity`=`quantity`+VALUES(`Quantity`);
希望它会有所帮助,
Liron