创建postgresql触发器或函数以从一个表中删除旧数据并插入别名表

时间:2017-03-24 09:37:20

标签: sql postgresql postgresql-9.1 database-trigger

在PostgreSQL中,我想创建函数和触发器,它可以从A表(包含许多行)中删除8天之前的旧数据,并将此数据插入到一个新的别名表中。我想每天执行这个触发器。

1 个答案:

答案 0 :(得分:1)

创建历史记录表

create table b as select * from a where false;

移动数据

begin; 
  insert into b select * from a where ts < (now() - '8 days'::interval); 
  delete from a where ts < (now() - '8 days'::interval); 
end;

计划

  1. 创建一个文件a.sql并将上述事务放入其中
  2. 添加到cron psql -f a.sql
  3. 备注 创建将删除每个语句上的数据的触发器是一个坏主意