SQL中MERGE INTO语句的用法详解
merge into 用法它是一种常见的SQL语法,用于更新,插入和删除表中的数据,本文给大家介绍SQL中merge into用法,感兴趣的朋友一起看看吧。
从备份表中更新字段到正式表中,使用 UPDATE 批量更新大量的数据,会出现效率低下,有时候甚至卡死的情况,后面通过使用 MERGE INTO 代替 UPDATE 执行批量更新,会提升执行效率。
MERGE INTO语法如下:
MERGEINTOtable_name alias1USING (table|view|sub_query) alias2ON(joincondition)WHENMATCHEDTHENUPDATESETcol1 = col1_val1,col2 = col2_val2WHENNOTMATCHEDTHENINSERT(column_list)VALUES(column_values);
其中,table_name 指的是更新的表,using()里边的指的是数据来源表/视图/子查询结果集,condition指的是连接条件,如果满足连接条件,set 字段1=值1,字段2=值2...
如果连接条件不满足,则停止更新进行插入。
下面我们来举例说明:
先创建被更新表merge_target,并往其中插入一条数据用来更新;

再创建更新表merge_source,用来向被更新表插入数据;

下面准备merge into脚本:
MERGEINTOmerge_target targetUSING (SELECTB.name,B.age,B.target_idFROMmerge_source B) sourceON(target.id=source.target_id)WHENMATCHEDTHENUPDATESETtarget.name= source.name,target.age = source.ageWHENNOTMATCHEDTHENINSERT(target.name,target.age)VALUES(source.name,source.age);
结果如下:

另:MySql不支持merge into 语法。
您可能感兴趣的文章
声明:本文来自互联网或用户投稿,该文观点仅代表作者本人,不代表本站立场。文章及其配图仅供学习和交流之用,版权归原作者所有,如有内容侵权或者其他违规问题,请联系本站处理。




