更新插入、数据更新、数据附加、数据覆盖四种方式的区...

8144
4

shijiao 小试身手Lv3

发表于2018-8-15 15:06

悬赏1

已解决

楼主
数据工厂中更新插入、数据更新、数据附加、数据覆盖四种方式的区别是什么?生成的sql分别是什么?
更新插入是否会做三种情况判断:
1、主键存在,数据完全一样
2、主键存在,数据存在修改
3、主键不存在
数据更新是否只是根据已存在的主键更新数据?
数据附加如果违反唯一性约束怎么办?
数据覆盖是否delete全表再插入?

最近看过此主题的会员

chenliwei

约克公爵R

最佳答案
数据附加:将源数据追加到目标目的表中,若某条源数据记录在目标中已经存在,则忽略该条源数据。
        
数据覆盖:先将目标表清空,在将源数据插入目标表中。

数据更新:更新目标表中已有的数据,源数据在目标表中的不存在的话,将不作处理

更新插入:源数据如果在目标表中不存在,则插入该条数据;源数据如果在目标表中存在,则更新该条数据。

您刚才说的三种判断,如果有主键,会识别主键,数据完全一样就直接覆盖,数据存在修改也会直接修改,如果不存在主键,数据完全一样的直接重复保留并集,不过一般界面就会让你勾选主键更新

数据更新是只根据已存在的主键更新

数据附加如果违反唯一性约束会中止

数据覆盖是会truncate再insert
4个回答

只看楼主

混乱七星天 数据达人Lv4

发表于2018-8-15 15:06

只看该作者

取消 关注该作者的回复

沙发

数据附加:将源数据追加到目标目的表中,若某条源数据记录在目标中已经存在,则忽略该条源数据。
        
数据覆盖:先将目标表清空,在将源数据插入目标表中。

数据更新:更新目标表中已有的数据,源数据在目标表中的不存在的话,将不作处理

更新插入:源数据如果在目标表中不存在,则插入该条数据;源数据如果在目标表中存在,则更新该条数据。

您刚才说的三种判断,如果有主键,会识别主键,数据完全一样就直接覆盖,数据存在修改也会直接修改,如果不存在主键,数据完全一样的直接重复保留并集,不过一般界面就会让你勾选主键更新

数据更新是只根据已存在的主键更新

数据附加如果违反唯一性约束会中止

数据覆盖是会truncate再insert

shijiao 小试身手Lv3

发表于2018-8-15 17:12

只看该作者

取消 关注该作者的回复

板凳

数据更新和更新插入用的是merge into语句,数据附加和数据覆盖直接用的insert语句,数据覆盖会先清掉之前的数据。关于merge into的用法,详细见http://www.cnblogs.com/dongsheng/p/4384754.html,简单来说就是符合条件的情况下执行更新操作,否则执行插入操作,也可以只做更新。

混乱七星天 数据达人Lv4

发表于2018-8-15 17:14

只看该作者

取消 关注该作者的回复

地板

shijiao 发表于 2018-8-15 17:12
数据更新和更新插入用的是merge into语句,数据附加和数据覆盖直接用的insert语句,数据覆盖会先清掉之前的 ...

棒棒棒

韦韬然 数据老手Lv5

发表于2018-8-16 09:35

只看该作者

取消 关注该作者的回复

5#

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号