我有三个用于管理库存水平的表格 - Product
,ProductGender
和ProductType
。我还有一个名为OrderItem
的表,用于定义从数据库中订购的内容。
在我的程序中将值插入OrderItem
表后,它会识别用户将金额插入字段后要订购的数量。
我的问题是 - 如何从表ProductType
中减去库存量中的库存量?我知道我需要某种形式的DELETE
陈述,但我不确定如何制作充分的陈述。
答案 0 :(得分:1)
您可能需要UPDATE
而不是DELETE
。话虽这么说,我不建议在接受订单后更新股票。我认为反过来更易于管理:更新库存,如果有足够的商品,则只接受订单 。
类似的东西:
--> client place an order for 20 item id XXXX:
UPDATE ProductType SET amount = amount - 20
WHERE amount >= 20 AND item_id = 'XXXX';
^^^^^^^^^^^^^^^^^^
Please note that "guard" clause
该语句将更新0或1行。 1行表示“ok,stock updated”。 0表示“库存中没有足够的物品”。这在多用户环境中尤其重要,在这种环境中,您可以为同一项目同时更新库存。
之后:
--> If 1 row updated
INSERT INTO OrderItem(..., amount) VALUES (....., 20);
最后,在现实世界的应用程序中,您需要在库存更新后出现意外故障时将所有这些语句包装在事务中。
答案 1 :(得分:0)
我不知道你在想什么。假设
如果表ProductType --> type1 amount
然后在OrderItem
的{{1}}项中插入type1
项。因此,假设您必须decrease
来自ProductType
将n
金额插入OrderItem
,
您可以在这里使用UPDATE
UPDATE OrderItem SET column_name = column_name - n WHERE ...
<强>更新强>
更新库存,只有在有足够的物品时才接受订单,这是良好的流程步骤。
希望这有帮助