我有3个表,产品,仓库和订单详细信息。当客户下订单时,它将一个(或多个)productID放入order details表中。我要做的是通过触发器减少仓库表中该产品的数量。我得到了这个查询,它选择这个需要减1的特定数字,但是,我不能将其转换为update。我尝试了很多变体,但似乎都不起作用,因为我不能使用(使用更新时选择* where内)
SELECT warehouse.kolicina
FROM warehouse
INNER JOIN order_details ON warehouse.productID = order_details.productID
WHERE warehouse.productID = (
SELECT order_details.productID
FROM order_details
LEFT OUTER JOIN warehouse ON ( warehouse.productID = order_details.productID )
ORDER BY order_details.orderID DESC所以基本上我想做的是
after each insert on table order_details
UPDATE warehouse
SET quantity = quantity - 1
where warehouse.productID = last productID from table order_details如果有人知道如何让它工作,我将非常感激。
发布于 2014-06-29 03:06:11
您将创建一个after update触发器,并在那里执行更新。完整的代码如下所示:
CREATE TRIGGER order_details_trigger AFTER INSERT ON order_details
FOR EACH ROW
BEGIN
UPDATE warehouse
SET quantity = quantity - 1
where warehouse.productID = new.productID;
END;|
https://stackoverflow.com/questions/24469993
复制相似问题