在数据库中每天保留表的副本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在数据库中每天保留表的副本相关的知识,希望对你有一定的参考价值。
我希望每天12点将所有数据从原始表复制到重复表。如果我这样做,无论发生什么变化都应该反映在重复的表中...就像我们添加应添加到重复表的新行一样。更重要的是,如果我们更改原始表中的任何列,也应该反映在重复表中而不添加新行现有的行属性值应该更改。
@Override
public void insertDataToTableAtBegining() {
Query itemQuery1 = entitymanager.createNativeQuery("INSERT graph_item SELECT * FROM item WHERE order_id IS NOT NULL");
log.info("Inserting is completed where count is ZERO for item");
itemQuery1.executeUpdate();
Query orderQuery1 = entitymanager.createNativeQuery("INSERT graph_mrk_order SELECT * FROM mrk_order");
log.info("Inserting is completed where count is ZERO for order");
orderQuery1.executeUpdate();
}
@Override
public void insertDataToTable(Date beg, Date end) {
Query itemQuery1;
itemQuery1 = entitymanager.createNativeQuery("INSERT graph_item SELECT * FROM item WHERE create_timestamp BETWEEN '" + beg +"' AND '"+ end +"' WHERE order_id IS NOT NULL");
log.info("Inserting is completed in Daily for item");
itemQuery1.executeUpdate();
Query orderQuery1;
orderQuery1 = entitymanager.createNativeQuery("INSERT graph_mrk_order SELECT * FROM mrk_order WHERE create_timestamp BETWEEN '" + beg +"' AND '"+ end +"'");
log.info("Inserting is completed in Daily for order");
orderQuery1.executeUpdate();
}
答案
我建议您使用物化视图,因为它非常适合您的情况,您可以保证物化视图具有原始表中的所有最新行。在这种情况下,您只需要安排执行物化视图的刷新。
以上是关于在数据库中每天保留表的副本的主要内容,如果未能解决你的问题,请参考以下文章