例如,如果我有一个结构如下的表:
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 扩展?
PostgreSQL 中没有超时触发的活动,但解决该问题的规范关系数据库解决方案是不同的:定义一个具有列
status
的视图,定义如下
CASE WHEN status = 'approved' AND
updated_at < current_timestamp - INTERVAL '24:00:00'
THEN 'activated'
ELSE status
END
或者,将该表达式构建到您的查询中。