简体   繁体   English

插入记录后24小时后执行postgres触发吗?

[英]Execute postgres trigger after 24 hours after record insertion?

I`m trying to execute trigger after 24 hours after record insertion, for each row, how to do this? 我想在插入记录后24小时后执行触发器,对于每一行,该怎么做? please help 请帮忙

you know, if user doesn`t verificate his email, his account will be deleted. 您知道,如果用户不验证其电子邮件,则其帐户将被删除。

Without cron and so on. 没有cron等。

Postgres db. Postgres数据库。 PostgreSQL PostgreSQL的

This may help In relation to scheduling an sql command to run at a certain time. 这可能与安排在特定时间运行sql命令有关。

PGagent PG代理

This is the command I tested and you could use this in PGagent . 这是我测试过的命令,您可以在PGagent中使用它。

delete from email_tbl where email_id in(select email_id from email_tbl 
where timestamp < now() - '1 day'::interval );

Here is the test data i used. 这是我使用的测试数据。

CREATE EXTENSION citext;

CREATE DOMAIN email_addr AS citext
CHECK(
VALUE ~ '^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+[.][A-Za-z]+$' 
);


CREATE TABLE email_tbl (
email_id SERIAL PRIMARY KEY,
email_addr email_addr NOT NULL UNIQUE,
timestamp timestamp default current_timestamp
);

And here's some test data 这是一些测试数据

insert into email_tbl (email_addr) values('me@home.net')

insert into email_tbl (email_addr,timestamp)
values('me2@home.net','2015-07-15 00:00:00'::timestamp)

select * from email_tbl where timestamp < now() - '1 day'::interval 

All the best 祝一切顺利

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM