PostgreSQL在特定日期自动更新行

时间:2014-04-22 12:59:40

标签: sql postgresql

我希望在达到该行中的特定时间戳后更新一行。例如,拍卖网站的交易在一天左右到期。在那之后,交易自动到期。

PostgreSQL是否有一项功能,我可以设置一行在达到特定时间时自动更新?否则,我将如何实现此示例交易功能?

1 个答案:

答案 0 :(得分:1)

视图可以为此工作。假设一个表t

create table t (
    deal_id integer,
    deal_start timestamp,
    expiry_time interval
);
insert into t (deal_id, deal_start, expiry_time) values
(1, now(), '1 day');

如果该交易已过期,视图将加速审核

create view v as
select *, now() > deal_start + expiry_time as expired
from t
;

select * from v;
 deal_id |         deal_start         | expiry_time | expired 
---------+----------------------------+-------------+---------
       1 | 2014-04-22 13:26:32.319394 | 1 day       | f