merge into实现
来源:互联网 发布:淘宝交易纠纷处理规则 编辑:程序博客网 时间:2024/06/15 15:00
如果你遇到这样的情况:存在对一张数据量很大的表,你需要对里面的大量数据进行更新,如果数据不存在,就进行插入的操作。那么你会怎么做呢?是不是先根据条件查询一番,如果存在,那么就更新,否则就插入?其实,你大可不必这么做。Oracle9i 后可以用merge into轻轻松松搞定这个问题,避免多次的查询判断以及更新插入操作。
1.merge into简介
用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE
2.merge into语法
MERGE INTO [target-table] A USING [source-table sql] B ON([conditional expression] and [...]...)
WHEN MATCHED THEN
[UPDATE sql]
WHENNOT MATCHED THEN
[INSERT sql]
作用:判断B表和A表是否满足ON中条件,如果满足则用B表去更新A表,如果不满足,则将B表数据插入A表
3.merge into简单示例分析
利用merge into实现【如果原先库存中存在这个商品,那么就直接更新,否则就插入的操作】:
MERGE INTO STOCK A USING GOODS B ON (A.NAME=B.NAME)
WHEN MATCHED THEN
UPDATE SET A.REST=A.REST+B.NUM
WHEN NOT MATCHED THEN
INSERT(A.ID,A.NAME,A.REST) VALUES((select max(ID)+1 from STOCK),B.NAME,B.NUM);
COMMIT;
当上面的语句执行后,查询stock库存表如下:
- 【Mysql】实现merge into
- merge into实现
- 使用Merge Into 语句实现 Insert/Update
- 使用Merge Into 语句实现 Insert/Update
- mysql实现类似oracle merge into功能
- merge into
- merge into
- merge into
- merge into
- merge into
- Merge into
- merge into
- merge into
- Merge into
- merge into
- Merge into
- Merge Into
- Oracle select --merge into:
- bzoj1070 [SCOI2007]修车(费用流)
- Spring详解---AOP
- 常见的面试题
- python 3 阿里云python sdk, PyCrypto无法安装解决方法
- ubuntu16.04---解决插入U盘或者移动硬盘后自动弹出文件窗口的问题(取消弹出窗口)
- merge into实现
- C#加载doc文档中的表格与txt文档中的数据然后进行操作
- [Unity][Animation]通过Animator来控制子物体的升起下落
- LeetCode 188. Best Time to Buy and Sell Stock IV
- Elasticsearch与Kibana入门
- java系统高并发解决方案
- 解决springmvc,@Response注解返回json对象出错问题
- 破解教程 第二课 脱壳
- filter interceptor 区别