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快速完成表的复制;
这种复制方式的好处在于:
实现对原表的完全复制(不仅仅是表结构和表数据,还有主键列的定义、索引、外键、触发器等。);
缺点在于:
实现的是对整表数据的复制,不能只复制部分数据(按条件进行数据复制)。
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/8484659.html