【问题标题】:SQL - Generate column from sum of columns from different tableSQL - 从不同表的列总和生成列
【发布时间】:2020-06-27 20:26:35
【问题描述】:

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

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

现在我的问题是:我可以创建如下表吗:

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))
);

【问题讨论】:

  • 很抱歉输入错误:它是带两个而不是三个 'e' 的 intthree。
  • 您是否只是想创建一个包含其他三列总和的生成列?

标签: sql sum mariadb create-table auto-generate


【解决方案1】:

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

如果是这样,你应该直接将它添加到原始表中:

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

如果您不想(或不能)更改原始表格,我建议改为创建一个视图:

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

【讨论】:

  • 感谢您的回答!我将按照您的建议创建一个 sumColumn 并将 sumTable 中的 sumColumn 作为指向第一个表中 sumColumn 的外键。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-14
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多