嗨,我最近开始探索 pgAgent。安装和测试已经完成。然而,关于 pgAgent 有一件事情困扰着我。这个东西只会运行 SQL 或批处理代码。
假设,在我的数据库表中包含不同的周数数据。出于维护目的,该表应仅存储过去 2 周的数据。pgAgent 是否能够自动执行此任务。
工作流程将是:
1)Get System timestamp
2)Calculate week Number
3)delete * from table where week= week - 3
如果可以做到这一点,它会是批处理还是 SQL 类型?如果您能提供一些示例,我将不胜感激。
太感谢了。
CREATE OR REPLACE FUNCTION weekno() RETURNS void AS $$
DECLARE weekno INTEGER;
BEGIN
weekno := select extract(week from (select current_timestamp));
RAISE NOTICE '%', weekno;
END;
$$ LANGUAGE plpgsql;
SELECT weekno();
delete * from mytable where week=weekno();
例如,假设 select extract(week from (select current_timestamp)) 返回 22,则必须删除包含第 19 周数据的行。
Week Person Total Overtime Hours
19 Belle 12
19 Anthony 10
19 Boss 0
20 Anthony 15
20 Boss 0
20 Belle 5
21 Anthony 20
21 Belle 10
21 Boss 0
22 Anthony 25
22 Belle 8
22 Boss 0