我希望在达到该行中的特定时间戳后更新一行。例如,拍卖网站的交易在一天左右到期。在那之后,交易自动到期。
PostgreSQL是否有一项功能,我可以设置一行在达到特定时间时自动更新?否则,我将如何实现此示例交易功能?
答案 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