我试图在postgresql数据库表中复制(一个最小的)crontab功能,具有类似crontab的语义,如下所示(索引未显示,用于simiplicity):
create table schedule (
id int not null primary key,
command text
);
create table schedule_detail(
schedule_id int not null references schedule(id),
sd_minute smallint not null,
sd_hour smallint not null,
sd_day smallint not null,
sd_month smallint not null,
sd_year smallint not null,
sd_dayofweek smallint not null
);
我只有架构设计。我想了解如何实现这一点。特别是,如何实现:
postgresql是否具有我可以构建的任何本机(内置)功能来实现此行为?
答案 0 :(得分:10)
pgAgent将完成这项工作。可以在Postgresonline.com找到完整的设置。
答案 1 :(得分:2)
我一直在使用psql + crontab。像这样:
此crontab条目将以滚动方式删除超过60天的内容。
0 16 * * * PGPASSWORD=mypassword psql -Umyuser -dmyschema -c "delete from mytable where created_at < now() - interval '60 days'"