oracle 快速备份表数据

UpdateTime--2017年1月20日11:45:07

1.1.9.3 备份表数据

  语法:

     CREATE TABLE 表名_BAK/_日期 AS SELECT * FROM 要备份的表名

  举例:

CREATE TABLE TABLE_BAK AS SELECT * FROM TABLE

  应用场景:删除之前先做备份  

--备份2017年符合条件的表数据
CREATE TABLE CONSULT_SCHEDULE_2017_BAK AS 
SELECT * FROM CONSULT_SCHEDULE T
WHERE T.SCHEDULE_DATE BETWEEN TO_DATE('2017-01-01','yyyy-mm-dd')
AND TO_DATE('2017-12-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
AND T.ORG_ID='134557';
--备份好后再进行删除,以便备用
DELETE FROM CONSULT_SCHEDULE T
 WHERE T.SCHEDULE_DATE BETWEEN TO_DATE('2017-01-01', 'yyyy-mm-dd') AND
       TO_DATE('2017-12-31 23:59:59','yyyy-mm-dd hh24:mi:ss')
   AND T.ORG_ID = '134557';

2022年2月19日11:05:11

说明:

使用这样方式,将会导致:新建的表,主键消失、索引消失、外键消失和触发器消失。

所以说,如果,我们要对备份表进行复用的话,需要:

重新定义主键、创建序列(序列的起始值设为当前主键的最大值+1)、重建索引等等。

2.另一种实现方式

使用Navicat连接Oracle数据库--》切换到表视图--》通过Ctrl+C和Ctrl+V快速完成表的复制;

这种复制方式的好处在于:

实现对原表的完全复制(不仅仅是表结构和表数据,还有主键列的定义、索引、外键、触发器等。);

缺点在于:

实现的是对整表数据的复制,不能只复制部分数据(按条件进行数据复制)。

posted @ 2018-02-28 17:10  Marydon  阅读(29719)  评论(0编辑  收藏  举报