我有一个表Coupons
,其列endDate
数据类型为timestamp,没有时区。如果我将该列的值设置为 06/16/2018 12:45:00 + 5:30 。当当前时间戳大于 endDate
可以自动执行的delete from Coupons where endDate < NOW()
查询。
可以使用POSTGRESQL使用一些触发功能吗? 通过nodejs。
答案 0 :(得分:0)
你会想要一个基于时间变化而触发的触发器,这种情况不会发生。你需要pg_cron之类的东西来激发基于时间的命令。所以你可以编写一个函数,如:
CREATE FUNCTION expire_coupons() RETURNS void AS $$
DELETE FROM coupons WHERE enddate < now();
$$ LANGUAGE SQL;
然后让你的pg_cron作业甚至是crontab中的外部脚本调用SELECT expire_coupons();
。或者只是运行删除本身,因为它不是很复杂。