网站首页 > 教程文章 正文
使用 UPDATE 批量更新大量的数据,会出现效率低下,有时候甚至卡死的情况,后面通过使用 MERGE INTO 代替 UPDATE 执行批量更新,会提升执行效率。
原理:因为 UPDATE 关联子查询写法,是选到一条做一次子查询,这种写法得更新少,走好的索引才行,MERGE 写法是执行完 ON 后一次性更新,效率会好点。
语法:
MERGE INTO table_name alias1
USING (table|view|sub_query) alias2
ON (join condition)
WHEN MATCHED AND 限制条件 THEN --目标表存在,源表存在
UPDATE table_name
SET col1 = col_val1,
col2 = col2_val
WHEN NOT MATCHED AND 限制条件 THEN --目标表存在,源表不存在
INSERT (column_list) VALUES (column_values)
WHEN NOT MATCHED AND 限制条件 THEN SOURCE THEN --目标表存在,源表不存在
DELETE--删除目标表数据;接操作语句自定义
OUTPUT $ACTION AS [ACTION],
Insterted.id as 插入的id,
Insterted.[DESC] as 插入的DESC,
deleted.id as 删除的id,
deleted.[DESC] as 删除的DESC;
简单示例:
MERGE INTO TEST_MERGE_INTO T1
USING TEST_MERGE_INTO_DETAIL T2
ON (T1.ID = T2.ID)
WHEN MATCHED THEN
UPDATE SET ITEM_NAME = T2.ITEM_NAME
WHEN NOT MATCHED THEN
INSERT (ID, ITEM_NO, ITEM_NAME) VALUES (1, '031', 'api');
COMMIT;
猜你喜欢
- 2025-04-06 超级详细的zabbix环境搭建和测试(看我的教程,大神你也可以)
- 2025-04-06 oracle中merge into语句详解(oracle的merge语句)
- 2025-04-06 SQL——UPDATE:更新数据(更新sql语句)
- 2025-04-06 什么是 SQL 事务,如何创建 SQL 事务
- 2025-04-06 Win11学院:如何修复Windows Update服务丢失问题
- 2025-04-06 TiDB 专用语法,优化器注释和表属性
- 2025-04-06 20000 字干货笔记,一天搞定 MySQL
- 2025-04-06 数据库:Mysql中“select ... for update”排他锁分析
- 2025-04-06 【Mybatis实战第4天】三步搞定 Mybatis更新(update)操作
- 2025-04-06 select...for update到底是加了行锁,还是表锁?
- 最近发表
-
- 高德地图经纬度坐标批量拾取(高德地图如何拾取经纬度)
- 自己会进名人堂吗?库里:希望已经得到保证 我不会放慢脚步
- ASP.NET AJAX用户界面开发工具集Q3 2015 SP1全新发布
- UI控件Telerik UI for Silverlight发布R2 2016
- 可以扣篮吗?库里:我以前绝对能扣 现在为节省体能更多选择上篮
- Chrome重大更新——可自动修改被泄漏的密码
- 库里谈三分纪录:我希望继续将这项纪录推至一种无法触碰的位置
- 12个ComfyUI必备的自定义节点(cloudflare自定义节点)
- 库里谈臂展:这真的让我很苦恼 我的身高臂展都只有6尺3寸
- Win10学院:Setup.exe命令行参数详解
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)