前端之家收集整理的这篇文章主要介绍了
oracle中merge into用法解析,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
merge into的形式:
- MERGEINTO[target-table]AUSING[source-tablesql]BON([conditionalexpression]and[...]...)
- WHENMATCHEDTHEN
- [UPDATEsql]
- WHENNOTMATCHEDINSERTsql]
作用:判断B表和A表是否满足ON中条件,如果满足则用B表去更新A表,如果不满足,则将B表数据插入A表但是有很多可选项,如下:
1.正常模式
2.只update或者只insert
3.带条件的update或带条件的insert
4.全插入insert实现
5.带delete的update(觉得可以用3来实现)
下面一一测试。
测试建以下表:
createtableA_MERGE
(
idNUMBERnotnull,
nameVARCHAR2(12)yearNUMBER
);
tableB_MERGE
aidNUMBERyearNUMBER,108);color:inherit;line-height:18px;list-style-position:outside;">cityVARCHAR2(12)
tableC_MERGE
cityVARCHAR2(12)null
commit;
其表结构截图如下图所示:
A_MERGE表结构:
B_MERGE表结构
C_MERGE表结构
1.正常模式
先向A_MERGE和B_MERGE插入测试数据:
insertintoA_MERGEvalues(1,'liuwei',20);
values(2,'zhangbin',21);
values(3,'fuguo',153);background-color:inherit;font-weight:bold;">commit;
intoB_MERGE'吉林');
'yihe',33,'黑龙江');
'山东');
commit;