Postgresql 自动更新列

问题描述 投票:0回答:1

例如,如果我有一个结构如下的表:

id 卡号 状态 创建于 更新于
1 123 已注册 2024-07-10 15:00:00.000 2024-07-10 15:00:00.000
2 456 已批准 2020-04-01 15:00:00.000 2020-04-01 15:00:00.000

当用户将其卡状态更新为

approved
时,我希望在1天(24小时)后,状态自动更改为
activated
。有什么方法可以使用 SQL 查询本地执行此操作还是需要一些 PostgreSQL 扩展?

sql database postgresql triggers psql
1个回答
0
投票

PostgreSQL 中没有超时触发的活动,但解决该问题的规范关系数据库解决方案是不同的:定义一个具有列

status
的视图,定义如下

CASE WHEN status = 'approved' AND
          updated_at < current_timestamp - INTERVAL '24:00:00'
     THEN 'activated'
     ELSE status
END

或者,将该表达式构建到您的查询中。

© www.soinside.com 2019 - 2024. All rights reserved.