zoukankan      html  css  js  c++  java
  • 数据库(学习整理)----6--Oracle如何快速备份和多次备份数表数据

    1、说明:

        这里假设一种应用场景!

    假设,银行系统中有大量的数据需要及时备份,如何才能快速高效呢!

       条件需求:

          (1)、不能设置同步锁(设置的会影响银行正常业务进行!使得银行系统处于维护状态,这是不允许的!)

          (2)、尽量高效,因为银行中的数据是海量的,一般的SQL语句的效率不能够满足高性能!

          (3)......

    2、解决方案:

        1、备份结果集成一个新的备份表:

          说明:这里备份的是一个结果集!

          SQL语句:

              create table emp_bak

              (

                select * from emp

              );

         2、如何备份一个空表结构:

           SQL语句:         

              create table emp_bak

              (

                select * from emp 

                where 1 <> 1

              );

         3、第一次备份之后,若需要再次备份数据:

             SQL语句:

              insert into emp_bak

              (

                select * from emp where rownum<=10

              );

        4、如何判断接下来的备份是不是第一次备份数据!

           说明:

              为甚要做这种判断,很简单,因为第一次备份数据,是涵盖了创建备份的数据表的操做,之后的备份是一种新增操作,是不同的2中类型操做!所以需要区分!

          SQL语句:(这里我们需要查询视图,获取视图中备份数据的用户的对象,再去该用户下查询用户下的表!)

              1、select * from user_tables;    ----查询用户视图,在查到的数据结果集中找到需要验证的用户

              2、select * from  emp_bak;    ---去查询这个用户下的数据(也就是用户全下的表:),如果结果集中是空的(说明没有备份表的存在),那么就说明,以前没有备份数据表

              

        5、如何一条insert语句插入多条数据!

             说明:需要使用union关键字

              SQL语句:

                  insert into emp

                        select 's001',11'Jason' from dual

                        union

                        select 's002',12,'Jack' from dual

                        union

                        select 's003',13,'Rose' from dual;

              执行以上的SQL语句就可以一次性添加三条数据!

  • 相关阅读:
    B1295 [SCOI2009]最长距离 最短路
    B1588 [HNOI2002]营业额统计 set||平衡树
    B1202 [HNOI2005]狡猾的商人 并查集
    B1303 [CQOI2009] 中位数图 数学
    B2002 [Hnoi2010]Bounce 弹飞绵羊 分块
    B1192 [HNOI2006]超级英雄Hero 二分图匹配
    逐个击破
    HAOI2009 毛毛虫
    HNOI/AHOI2018 道路
    NOI2005 瑰丽华尔兹
  • 原文地址:https://www.cnblogs.com/newwind/p/5674998.html
Copyright © 2011-2022 走看看