2013-12-08 47 views
1

我有點新使用觸發器,我試圖創建一個觸發器,當訂購產品時會更新庫存。我知道這是錯誤的,因爲我不能使用ROW,並且在使用ROW前綴時也會出錯。那麼如何寫下觸發器呢?獲取觸發器的插入變量

CREATE TRIGGER changestock AFTER INSERT ON productorder 
FOR EACH ROW 
    UPDATE product 
    SET product.stock = product.stock - ROW.orderamount 
    WHERE product.productcode = ROW.productcode 

回答

2

使用NEW而不是ROW .. NEW指的是剛插入的記錄。您可以使用NEW從該記錄中獲取columnNames。之前列名稱:

CREATE TRIGGER changestock AFTER INSERT ON productorder 
FOR EACH ROW 
    UPDATE product 
    SET product.stock = product.stock - NEW.orderamount 
    WHERE product.productcode = NEW.productcode 
+0

如果有足夠的股票,檢查第1條會不會更好? –

+0

它可以在這裏完成,但我不確定這是否是最好的地方。我認爲他以前應該處理這個問題,只有在有庫存的情況下才能完成插入。 –

+0

謝謝,作品像魅力! – inControl