2017-02-17 234 views
1

我已經創建了一個新列,並且希望將此列中其他三列的值相乘的結果插入此列中。目標是通過乘以'length'*'width'*'height'自動計算每個產品id的音量。mysql自動計算將3列中的值相乘並將其插入第四列的結果

也許這必須使用觸發器來實現,但我的知識在這個問題上非常有限。

你能幫忙嗎?

非常感謝您的任何建議。

+0

我想非常感謝你們所有人的時間和你爲我提供的解決方案。它真的激勵我繼續處理MySQL,以便找到解決方案(這對你來說很簡單......但不是我)的問題。由於我不確定版本(我得到的結果是我有服務器版本:10.1.19-MariaDB PHP版本:5.6.24)我遵循eggyal的解決方案。它的工作!非常非常感謝你!! –

+0

如果@eggyal的解決方案爲你工作,該答案應被標記爲正確http://stackoverflow.com/help/someone-answers – e4c5

回答

0

也許這必須實現使用觸發器

賓果! (否則你可以使用views或者,因爲MySQL 5.7.6,generated columns)。

CREATE TRIGGER my_trigger BEFORE INSERT ON my_table FOR EACH ROW 
    SET NEW.volume = NEW.length * NEW.width * NEW.height 

你可能需要一個BEFORE UPDATE觸發過,但是我會離開,作爲一個練習留給讀者。

+0

謝謝。這工作像一個魅力..作爲一個BEFORE UPDATE :) –

0

如果你正在使用MySQL 5.7.6,這可以通過生成列

ALTER TABLE X 
    ADD COLUMN Volume DOUBLE AS length * width * height 

實現這種方式不需要觸發,列總是更新。

相關問題