【问题标题】:Is there a way to define a column as the sum of two others? [duplicate]有没有办法将一列定义为其他两列的总和? [复制]
【发布时间】:2017-09-26 10:22:57
【问题描述】:

我有一个表,我必须在其中定义一列作为前两个列的总和。有没有办法在定义(POSTGRESQL)中做到这一点?如果没有,你能告诉我如何使用触发器吗?

假设我们有这个:

Table Foo
+---+---+---------+
| A | B | Sum_A_B |
+---+---+---------+
| 2 | 3 | 5       |
| ...             |

【问题讨论】:

  • 可以创建视图; create view fooview as select a, b, a + b as Sum_A_B from foo.
  • 但是为什么要将它定义为 2 列的总和。你可以在运行时通过查询来做同样的事情。
  • 我不决定数据库的架构,但我会与主管讨论,以便建议他实现视图而不是更多列(或触发器)。感谢您将我重定向到可能的重复项,这对我有帮助! (对不起我的英语不好)

标签: sql postgresql


【解决方案1】:

我认为你不能在 Postgres 中使用计算列,视图会比触发器更好:

CREATE VIEW viewname
AS
     SELECT a,
            b,
            (a + b) AS Sum_A_B
     FROM foo;

或者你不能直接查询吗?是否需要存入表中:

 SELECT a,
        b,
        (a + b) AS Sum_A_B
 FROM foo;

【讨论】:

    猜你喜欢
    • 2012-03-02
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2020-06-27
    • 2020-10-04
    相关资源
    最近更新 更多