[英]Delete record 36 hours after insert in postgres using Triggers
我在存儲庫中存儲了一些由調度程序生成的 PDF 導出。 36 小時后,我需要刪除那些 PDF。
表格1
id(table2 的pk),file_type,數據
表2
id、名稱、標簽、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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.