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
我有两个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