2016-01-11 88 views
0

我有一個名爲'ebaylinked'的表格,我試圖做的是創建一個觸發器來檢查字段'Processed'?是1 如果是我希望它使用名爲'ebay_ID'的字段,並找到'產品'表上的相應列產品表上的字段是 'eBay_ID'當它發現它我希望它使用'ebaylinked'表中的'QuantitySold'字段,並從'product'表中'product_stock' 字段中減去int值,然後我希望它將處理更改爲0,以便它不能再次執行。複雜的MYSql觸發器

我很困惑與如何,因爲它是一個相當複雜的觸發,如果任何人都可以在正確的方向,我真的appreicate它, 其送我瘋狂的時刻點我甚至開始吧...

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 
+2

發佈您到目前爲止的內容,我們將盡力幫助您朝正確的方向前進。 – wogsland

+1

也嘗試添加一些結構和樣本數據。請閱讀[如何提問](http://stackoverflow.com/help/how-to-ask)和[mcve](http://stackoverflow.com/help/mcve),以獲得更好的收到問題。 – davejal

+1

您確定需要觸發器而不是存儲過程嗎? – Shadow

回答

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 

我不知道如果這些字段名稱是什麼,你有你的表,也許你可以張貼表模式?

至於如何觸發這個更新,你需要給我們一些更多的細節,比如它應該發生的時間。

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 

可以在稍加修改後觸發使用上面的語句。

+0

我使用phpmyadmin進行更新後添加了更新,但沒有對數據庫進行任何更改,以查看是否可以使其工作 –