是否有人可以告诉我是否可以在MYSQL中的表中创建一个列,该列自动为给定数量的列执行SUM函数。
作为Microsoft Excel中的比较示例,可以让一个单元格为给定范围的单元格执行SUM函数并自动更新i.e. (=SUM E4:E55)
是否可以在MYSQL中创建一个实现相同功能的列?
进一步阐述 -
我有许多与我们产品的不同尺寸数量有关的列,例如quantity_size_*
,并且想要一列能够汇总数量列值的列,并在任何值更改时自动更新。
任何建议都会很棒。谢谢
答案 0 :(得分:2)
通常,您会在即时选择查询中执行此操作,并且不会存储这些计算。
select some_column,
col1 * col2 as some_calculation_result
from your_table
但如果你有充分的理由不这样做,那么你可以使用触发器来计算这些数据。
您需要更新触发器来捕获数据中的更改,并使用插入触发器来计算插入时的数据。
插入触发器的示例如下所示
delimiter |
CREATE TRIGGER sum_trigger AFTER INSERT ON your_table
FOR EACH ROW BEGIN
SET NEW.sum_column = NEW.column1 * NEW.column2;
END
|
delimiter ;
答案 1 :(得分:0)
我认为你必须用触发器做这件事。列本身只是存储数据,它不能以编程方式执行。
答案 2 :(得分:-1)
Mysql还有你可以在select查询中使用的SUM()
函数。
因此,最好的选择是使用SELECT SUM()
查询
或者你甚至可以为此创建一个VIEW
,但触发器
不建议使用,因为它们可能会变得很麻烦。