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

标签 sql postgresql postgresql-9.1 database-trigger

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

最佳答案

历史表创建:

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

笔记 创建将删除每个语句上的数据的触发器是个坏主意

关于sql - 创建 postgresql 触发器或函数以从一个表中删除旧数据并插入到别名表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42995933/

相关文章:

sql - 是否可以在 postgreSQL 中按子字符串排序?

ruby-on-rails - 返回没有特定键的记录 - Rails4 HStore Postgresql 查询

sql - 找到最近目的地的最快方法

java - 将此函数重写为数据库查询?

PostgreSQL服务器连接错误: could not connect to server

sql - 使用 postgresql 的 WITH CTE 查询

ruby-on-rails - Heroku 推送错误

具有不同数据目录的 postgreSQL

java - PostgreSQL并发事务冲突如何解决

php - 不要在 mysql 数据库中复制内容