PostgreSQL定期删除七天以前的记录

本文介绍如何在PostgreSQL中使用函数(存储过程)和触发器实现自动清理创建时间超过七天的记录,包括创建函数和触发器的具体步骤。

定期删除在mysql通过创建存储过程和触发器比较容易,在postgresql中的方式会有些不一样,这里用到的是postgresql的函数(存储过程和触发器)

postgresql函数(存储过程)介绍:https://www.yiibai.com/postgresql/postgresql-functions.html
postgresql触发器介绍:https://www.yiibai.com/postgresql/postgresql-trigger.html

整体思路就是先写个函数(存储过程),再写个触发器来触发,实现自动清理创建事件大于七天的记录功能。

创建函数:

CREATE OR REPLACE FUNCTION auto_del_user ()  
RETURNS TRIGGER AS $res$ 
BEGIN  
   delete from user where create_time < (now() - interval '7 day');  
	 return NULL;
END;  
$res$ LANGUAGE plpgsql;

创建触发器:

CREATE TRIGGER auto_del_user AFTER INSERT ON user  
FOR EACH ROW EXECUTE PROCEDURE auto_del_user();

这里的触发策略是在每次插入的时候触发,可以根据自己需求修改策略。

通过触发器触发函数是需要函数有返回值的,如果开始没有返回值是不能修改的,要先删掉函数重新创建,删除函数使用
drop function ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值