我已經創建了一個新列,並且希望將此列中其他三列的值相乘的結果插入此列中。目標是通過乘以'length'*'width'*'height'自動計算每個產品id的音量。mysql自動計算將3列中的值相乘並將其插入第四列的結果
也許這必須使用觸發器來實現,但我的知識在這個問題上非常有限。
你能幫忙嗎?
非常感謝您的任何建議。
我已經創建了一個新列,並且希望將此列中其他三列的值相乘的結果插入此列中。目標是通過乘以'length'*'width'*'height'自動計算每個產品id的音量。mysql自動計算將3列中的值相乘並將其插入第四列的結果
也許這必須使用觸發器來實現,但我的知識在這個問題上非常有限。
你能幫忙嗎?
非常感謝您的任何建議。
也許這必須實現使用觸發器
賓果! (否則你可以使用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
觸發過,但是我會離開,作爲一個練習留給讀者。
謝謝。這工作像一個魅力..作爲一個BEFORE UPDATE :) –
如果你正在使用MySQL 5.7.6,這可以通過生成列
ALTER TABLE X
ADD COLUMN Volume DOUBLE AS length * width * height
實現這種方式不需要觸發,列總是更新。
我想非常感謝你們所有人的時間和你爲我提供的解決方案。它真的激勵我繼續處理MySQL,以便找到解決方案(這對你來說很簡單......但不是我)的問題。由於我不確定版本(我得到的結果是我有服務器版本:10.1.19-MariaDB PHP版本:5.6.24)我遵循eggyal的解決方案。它的工作!非常非常感謝你!! –
如果@eggyal的解決方案爲你工作,該答案應被標記爲正確http://stackoverflow.com/help/someone-answers – e4c5