我已在存储库中存储了一些由调度程序生成的PDF导出。 36小时后,我需要删除这些PDF。
表1
id(table2的pk),file_type,data
表2
id,name,label,created_date,updated_date
现在我如何编写一个触发器,可以在36小时后删除 Table1 和 Table2 中的记录。
我已经写了这个,但它只在插入完成时执行。即使没有发生偶数,我也希望它能够运行。
CREATE OR REPLACE FUNCTION ContentResource_Delete() RETURNS trigger AS $ContentResource_Delete$
BEGIN
delete from jicontentresource jicr USING jiresource jir
where jicr.id = jir.id and jicr.file_type='pdf' and trunc(EXTRACT(EPOCH FROM now() - creation_date)/3600) >=1 ;
delete from jiresource where name like '%.pdf' and trunc(EXTRACT(EPOCH FROM now() - creation_date)/3600) >=1 ;
RETURN NULL;
END;$ContentResource_Delete$ LANGUAGE plpgsql;
CREATE TRIGGER ContentResource_Delete AFTER INSERT ON jiresource FOR EACH ROW EXECUTE PROCEDURE ContentResource_Delete();