Oracle 用merge into 解决插入重复数据问题 您所在的位置:网站首页 oracle导入数据之前要删除原数据库怎么办 Oracle 用merge into 解决插入重复数据问题

Oracle 用merge into 解决插入重复数据问题

#Oracle 用merge into 解决插入重复数据问题| 来源: 网络整理| 查看: 265

Oracle 用merge into 解决插入重复数据问题

继昨天解决用python向oralce插入数据问题,今天考虑到我插入的数据每次都是包含前一次插入的数据,太多重复值不利于之后的数据可视化,所以想着能不能插入数据的时候自动判别重复的值,只导入不重复的值,一开始用 install into a where a.t not in (select t from a ) 结果报错,百度才知道install不能直接跟where,查询好久发现好多都指向用merge into,于是直接去搜了它的用法,感觉可行,就试着让表自己和自己去重,仔细想了一下发现逻辑上行不通,就想到建一个临时表,每次新增数据用python插入到临时表中,再用merge into 将临时表中不重复的插入最终表中

merge into table1 a using table_temp b on(a.col = b.col) when not matched then insert(col1,col2)--表a的所有列名 values(b.col1,b.col2) --表b的所有列名

个人对merge into在本次需求中的理解: table1 就是需要插入的表 table_temp 就是我的临时表,也就是需要将这个表里的数导入到需要被插入的表中 on 两个表中有代表意义唯一的值,例如学生id when not matched then 当表b中数没有和表a匹配上时,也就是说此时我的临时表中的数和表a匹配后,将相同的数剔除剩余不同的部分 insert(col1,col2) 将上面提到的剩余不同的数插入a表中,这里的insert括号里是指a表的列名,全部列出来,不列出来会怎么样,还没测试过 values(b.col1,b.col2)这里需要列出的是临时表表b的所有列名 最后通过先清空临时表,再将爬取到的数插入临时表中,再将临时表中的数通过merge into 插入最终表中,成功实现用python去重插入,特此记录一下,merge into还可以进行删改操作,因为本次需求中未用到,等之后有需求再学习使用。 最近越来越发现已用促学才能更快学习掌握,至少不盲目,每天进步一点点,时间宝贵,且学且珍惜!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有