Jslfl【软件开发技术笔记】

开发测试过程中数据库现场恢复处理

在开发调试过程中,需要频繁去清理、修改业务过程中涉及到的很多表数据,为方便快捷恢复数据,可参考以下方式对数据库现场备份处理。
步骤:
1、测试前备份数据到临时表
2、测试过程中随时通过备份进行恢复现场
3、测试完成后删除临时表(测试完成后及时清理临时表,否则临时表过多对数据库备份造成额外压力)

需要用到的sql介绍:
复制表结构和数据到新表(自动创建tab_new)
oracle:
1、既复制表结构也复制表内容的SQL语句:
CREATE TABLE tab_new AS SELECT * FROM tab_old;
2、只复制表结构不复制表内容的SQL语句:
CREATE TABLE tab_new AS SELECT * FROM tab_old WHERE 1=2;
3、不复制表结构,只复制内容的sql语句:
SELECT vale1, value2 into Table2 from Table1
mssql:
select * into tablenew from tableold

B表数据复制到A表(两个表都已存在且结构相同)
insert into tableA select * from tableB;

清空表数据(与delete有区别)
TRUNCATE table xxx;

删除表
drop table xxx;

以下用MSSQL数据库为例

备份现场数据(备份表只包含结构和数据,不包含表属性如注释、外键、索引等):

1
select * into batch_detail_copy_shth0130 FROM batch_detail;

测试过程恢复现场

1
2
TRUNCATE table batch_detail;
insert into batch_detail select * from batch_detail_copy_shth0130;

测试完成后删除临时表

1
drop table batch_detail_copy_shth0130;

Comments are currently closed.