积跬步,聚小流------oracle快捷添加测试数据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了积跬步,聚小流------oracle快捷添加测试数据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1554字,纯文字阅读大概需要3分钟。
内容图文

前一阵子在实施中发现问题,需要当时进行修改,而因为数据库中数据是真实数据,不能进行修改,否则会出大纰漏吧,于是添加测试数据来方便修改,而单个添加效率太低下了,所以解决的办法就是以真实的数据为模板增添新方便删除的数据即可,就像将2014年的数据复制一份只将年份进行修改,删除的时候讲这个不存在的年份数据删除即可。
相信大家很容易会想到这个方法,也很容易做出答案,举个例子:
看这个表,因为主键中都是以当年年份开头的,同时年度也是当年年份,这样我们就可以进行添加修改:
假使说这个表格存在如下列:
btfid、production、code、retrieveid、location、tobaccostation、plantvillage、cooperation、tobaccotechnician、eastlong、eastlat、southlong、southlat、westlong、westlat、northlong、northlat、amsl、totalarea
那样我们可以可以这样写:
insert into arc_basictobaccofield select '2016' || substr(btfid, 5), '2016', code, retrieveid, location, tobaccostation, plantvillage, cooperation, tobaccotechnician, eastlong, eastlat, southlong, southlat, westlong, westlat, northlong, northlat, amsl, totalarea from arc_basictobaccofield where tobaccostation = '37030405C' and productionyear = 2015
然后在删除的时候只需要将年份为2016的全部删除即可,但是这里还存在一个问题,实际上表的属性可能不仅仅只有这么点列,事实上,就算只有这几列,也远远大于我们需要修改的两列数据了,我们是不是可以有更好的办法来解决它呢?
答案是肯定的,这样我们倒过来思考下,我们只需要修改两列而已,那我们就把所有数据取出来,将这两列数据修改之后进行插入不就可以了么,我们来写下看:
首先我们来创建一个临时表:
create table arc_basictobaccofield1 as select * from arc_basictobaccofield where tobaccostation='37030405C' and productionyear=2015
然后我们将需要修改的列进行修改:
update arc_basictobaccofield1 set productionyear=2015 update arc_basictobaccofield1 set btfid ='2015'||substr(btfid,5)
这时候将修改后的数据导入我们需要导入的表中:
insert into arc_basictobaccofield select * from arc_basictobaccofield1
最后这一步还是很关键的,千万不能忘掉:检查导入数据,然后删除临时表
drop table arc_basictobaccofield1
这样再来看,是不是不需要估计真实表究竟有多少列了呢,可见许多时候换个思考方式还是很有效率的
原文:http://blog.csdn.net/marsmile_tbo/article/details/42966011
内容总结
以上是互联网集市为您收集整理的积跬步,聚小流------oracle快捷添加测试数据全部内容,希望文章能够帮你解决积跬步,聚小流------oracle快捷添加测试数据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。