我试图在记录插入24小时后执行触发器,对于每一行,如何执行此操作?请帮忙
您知道,如果用户没有验证他的电子邮件,他的帐户将被删除。
没有cron等等。
Postgres db。 PostgreSQL的
答案 0 :(得分:0)
这可能有助于调度sql命令以在特定时间运行。
这是我测试的命令,你可以在 PGagent 中使用它。
delete from email_tbl where email_id in(select email_id from email_tbl
where timestamp < now() - '1 day'::interval );
这是我使用的测试数据。
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
);
这是一些测试数据
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
一切顺利