首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带内连接的MySQL update

带内连接的MySQL update
EN

Stack Overflow用户
提问于 2014-06-29 03:02:57
回答 1查看 679关注 0票数 0

我有3个表,产品,仓库和订单详细信息。当客户下订单时,它将一个(或多个)productID放入order details表中。我要做的是通过触发器减少仓库表中该产品的数量。我得到了这个查询,它选择这个需要减1的特定数字,但是,我不能将其转换为update。我尝试了很多变体,但似乎都不起作用,因为我不能使用(使用更新时选择* where内)

代码语言:javascript
复制
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

所以基本上我想做的是

代码语言:javascript
复制
after each insert on table order_details
UPDATE warehouse
SET quantity = quantity - 1
where warehouse.productID = last productID from table order_details

如果有人知道如何让它工作,我将非常感激。

EN

回答 1

Stack Overflow用户

发布于 2014-06-29 03:06:11

您将创建一个after update触发器,并在那里执行更新。完整的代码如下所示:

代码语言:javascript
复制
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;

|

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24469993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档