我有一个名为'ebaylinked'的表,我试图做的是创建一个触发器,检查字段'Processed?'是1 如果它是我希望它使用名为'ebay_ID'的字段并在表'product'上找到相应的列,product表上的字段是 'eBay_ID'当它发现它我希望它使用'ebaylinked'表中的'QuantitySold'字段并从'product_stock'中减去int值 “产品”表中的字段然后我希望它将处理更改为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
答案 0 :(得分:0)
对不起,你的问题很难理解。据我所知,您只想在某个时刻更新产品数量字段并减去ebay销售数量。
这是我为了更新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
我不确定这些字段名称是否适用于您的表格,也许您可以发布表格模式?
至于如何触发此更新,您需要向我们提供一些更多详细信息,例如何时应该发生。
答案 1 :(得分:0)
您需要一个简单的多表更新语句:
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
您可以在触发器中使用上述语句稍作修改。