SQL - 根据来自不同 table 的列的总和生成列

SQL - Generate column from sum of columns from different table

我有两个table:第一个包含数值,看起来像这样:

id列为主键;它具有属性 AUTO_INCREMENT。所有列的数据类型都是 INT

现在我的问题是:我可以像下面这样创建 table 吗:

create table testsumtable
(
    id int primary key auto_increment,
    sumColumn int generated always as (sum(SELECT intone, inttwo, intthree FROM valuestable WHERE id=new.id))
);

您是否只想创建一个包含其他三个列之和的生成列?

如果是的话,你应该直接把它添加到原来的table:

alter table mytable
add column sumColumn as (intone + inttwo + intthree)

如果您不想(或不能)改变原来的 table,我建议您创建一个视图:

create view myview as
select id, intone, inttwo, intthree, intone + inttwo + intthree sumColumn from mytable