我正在使用PostgreSQL。我需要从数据库中删除所有事务数据(最近三个月的事务数据除外),然后将数据恢复到新数据库,同时创建/更新时间戳记更新为现在的时间戳记。另外,过去三个月的更多数据必须重新存入一个数据(例如,甲方的所有发票必须与甲方一起分组为一张发票)。其他规则是,如果数据仍然是过去三个月数据引用的外键,那么数据不能被删除,只能将创建/更新的时间戳更改为现在的时间戳。如何有效保存和恢复过去三个月的数据并删除旧数据?
我不是在SQL查询好,所以现在我使用这个策略:
- 首先创建概括数据之前删除(所有数据)(在其他临时表保存)。
- 然后删除除最近三个月以外的所有数据。
- 接下来在删除后创建回顾数据。
- 从(所有数据 - 删除数据后)创建回顾数据,所以我得到的回顾数据的名义与过去三个月前的数据完全相同。
- 然后将回顾数据插入表格。所以旧数据是干净的+有数据库中的数据。
所以我的策略是只使用相同的数据库,而不是创建新的数据库,因为使用该程序导入数据的进程非常缓慢(因为有900 ++表)。
但客户端不希望使用此策略,因为他希望数据在新数据库中创建并告诉我使用其他方式。所以问题是:从某些日期清理数据库(使用日期过滤)并回顾旧数据的真实且正确的过程是什么?
我已经在所有表格中创建并更新了时间戳列。 – Sky