在数据库中每天保留表的副本

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();
}
答案

我建议您使用物化视图,因为它非常适合您的情况,您可以保证物化视图具有原始表中的所有最新行。在这种情况下,您只需要安排执行物化视图的刷新。

以上是关于在数据库中每天保留表的副本的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在OnStop()上回收所有数据并使用保留片段?

是否可以在 OnStop() 回收所有数据并使用保留片段?

java BottomBarNavigation代码保留片段状态

重定向时如何在 Safari 中保留 uri 片段?

Realm保留一个已删除的对象

我应该保留远程数据库的本地副本吗?