table 更新后执行计算

Perform Calculation after table has updated

我正在做一个我给自己的 phpmysql 项目,目的是学习更多关于查询的知识。 我添加了一个名为 CALCULATION 的新列。

我想做的是一旦数据库更新,就进行一次计算。该计算将是:

音量 *(高 - 低)

并且该值将出现在“计算”列下的相应行中。

所以,以AAL为例,从贴出的截图来看:

24847975 * (20.02 - 19.36) = 16399663.50(将出现在 AAL 的“计算”列下。

所以 table 每天更新,然后当它更新时我想对其执行计算。我正在考虑它可能是 TRIGGERS 的想法,但希望得到一些指导。

如果行内没有任何内容,则只执行此计算会很有用,因为重新计算所有内容会浪费资源。

我建议创建一个视图,该视图的计算列是 HIGH * LOW 的集合。类似以下内容:

CREATE VIEW [viewName] AS
SELECT (high*low) as calculation
FROM tableName

有一个生成的列

create table ...
(
    ...
    calculation float GENERATED ALWAYS AS (VOLUME * (HIGH - LOW)),
    ...
)

(你可以选择其他数据类型,我不太了解MySQL...)

触发器非常适合您的需要!它们允许在对单行进行操作后执行操作。您可以在 table 上定义一个用于插入的触发器和一个用于更新的触发器(它们可以在操作之前或之后执行)

当您执行插入(或更新)时,触发器可以计算值并将其放入您的列中。

另一种更简单的解决方案是在完成 table 更新后执行其他更新查询。