【问题标题】:how to embed a function to column in PostgreSQL如何将函数嵌入到 PostgreSQL 的列中
【发布时间】:2021-08-01 14:50:07
【问题描述】:

我是 SQL 和 PostgreSQL 的新手,我正在尝试找到一种方法来在数据库中创建一个新表,其中的一列将使用来自其他列的数据自动计算一个预定义的函数。

具体来说,我想要一个 LOGTIME_IN |超时 | DURATION 列 其中 DURATION 列显示 (=TIME_OUT - TIME_IN) 的结果

当然,这可以通过运行查询来完成,但我正在尝试确定是否可能

预先定义它,所以无论何时运行SELECT * FROM log 该表将加载已根据 IN / OUT 列中的更新数据计算的持续时间值。

【问题讨论】:

    标签: sql postgresql generated-columns


    【解决方案1】:

    这可以使用generated column 来完成,例如:

    create table log
    ( 
      id integer primary key generated always as identity,
      time_in timestamp,
      time_out timestamp,
      duration interval generated always as (time_out - time_in) stored
    );
    

    另一种选择是创建view

    create view log_with_duration
    as
    select id, 
           time_in, 
           time_out, 
           time_out - time_in as duration
    from log;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 2022-01-01
      • 1970-01-01
      • 2021-01-16
      • 1970-01-01
      • 1970-01-01
      • 2019-07-23
      相关资源
      最近更新 更多