复杂MYSql触发器

复杂MYSql触发器,mysql,triggers,Mysql,Triggers,我有一个名为“ebaylinked”的表,我试图创建一个触发器,检查字段“Processed”是否为1 如果是,我希望它使用名为“ebay_ID”的字段,并在表“product”中找到相应的列,则products表中的字段为 “eBay\u ID”找到它时,我希望它使用“eBayLink”表中的“QuantitySeld”字段,并从“product\u stock”中减去int值 “products”表中的字段,然后我希望它将“processed”更改为0,以便它不能再次执行此操作 我甚至不知道

我有一个名为“ebaylinked”的表,我试图创建一个触发器,检查字段“Processed”是否为1 如果是,我希望它使用名为“ebay_ID”的字段,并在表“product”中找到相应的列,则products表中的字段为 “eBay\u ID”找到它时,我希望它使用“eBayLink”表中的“QuantitySeld”字段,并从“product\u stock”中减去int值 “products”表中的字段,然后我希望它将“processed”更改为0,以便它不能再次执行此操作

我甚至不知道如何启动它,因为它是一个相当复杂的触发器,如果有人能给我指出正确的方向,我会非常感激的, 这让我现在很生气

UPDATE database.product.product_stock
SET product.product_stock=product.product_stock-ebaylinked.QuantitySold,product.Processed? = 0
FROM
database.ebaylinked,
WHERE
database.product.eBay_ID database.ebaylinked.ebay_ID

对不起,你的问题很难理解。据我所知,您只需在某个时刻更新产品数量字段,然后减去易趣的销售额

这是我提出的查询,只是为了更新product_stock字段:

UPDATE
    product
    JOIN TABLE ebaylinked ON
        ebaylinked.eBay_ID = product.eBay_ID
SET
    product.product_stock = product.product_stock - ebaylinked.QuantitySold
WHERE
    product.`Processed?` = 1
我不确定这些字段名是否是表的名称,也许您可以发布表模式


至于如何触发此更新,您需要向我们提供更多详细信息,例如它应该在何时发生。

您需要一个简单的多表更新语句:

UPDATE product p
INNER JOIN ebaylinked e ON e.eBay_ID = p.eBay_ID
SET p.product_stock = p.product_stock - e.QuantitySold, p.processed=0
WHERE
p.processed = 1

您可以在触发器中使用上面的语句,只需稍加修改。

发布您到目前为止获得的信息,我们将尝试帮助您朝正确的方向前进。同时尝试添加一些结构和示例数据。阅读并提出一个更好的问题。你确定你需要一个触发器而不是一个存储过程吗?我对这个很陌生,我有过尝试,但我认为我把它添加到问题中是错误的。我不知道我是否可以使用减号从一个字段中删除另一个字段,不知道我是否可以像那样将值设置为零,并且不知道如何处理“仅在Processed设置为1时执行”…我在(使用phpmyadmin)继续之后添加了更新,但没有对数据库进行任何更改,看看是否可以让它工作