mysql自动计算将3列中的值相乘并将其插入第四列的结果

问题描述:

我已经创建了一个新列,并且希望将此列中其他三列的值相乘的结果插入此列中。目标是通过乘以'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

也许这必须实现使用触发器

宾果! (否则你可以使用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 :) –

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

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

实现这种方式不需要触发,列总是更新。