首页 > 数据库 >mysql merge update_SQL中批量更新 merge into用法

mysql merge update_SQL中批量更新 merge into用法

时间:2023-03-14 18:44:16浏览次数:41  
标签:target merge into 更新 source mysql age name

 

从备份表中更新字段到正式表中,使用 UPDATE 批量更新大量的数据,会出现效率低下,有时候甚至卡死的情况,后面通过使用 MERGE INTO 代替 UPDATE 执行批量更新,会提升执行效率。

MERGE INTO语法如下:

MERGE INTO table_name alias1

USING (table|view|sub_query) alias2

ON (join condition)

WHEN MATCHED THEN

UPDATE

SET col1 = col1_val1,

col2 = col2_val2

WHEN NOT MATCHED THEN

INSERT (column_list) VALUES (column_values);

 

 

 

其中,table_name 指的是更新的表,using()里边的指的是数据来源表/视图/子查询结果集,condition指的是连接条件,如果满足连接条件,set 字段1=值1,字段2=值2...

如果连接条件不满足,则停止更新进行插入。

下面我们来举例说明:

先创建被更新表merge_target,并往其中插入一条数据用来更新;

  

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

 

 

 

下面准备merge into脚本:

MERGE INTO merge_target target

USING (SELECT B.name,B.age,B.target_id FROM merge_source B) source

ON (target.id=source.target_id)

WHEN MATCHED THEN

UPDATE

SET target.name = source.name,

target.age = source.age

WHEN NOT MATCHED THEN

INSERT(target.name,target.age) VALUES (source.name,source.age);

 

 

 

结果如下:

 

 

  

原文:https://blog.csdn.net/qq_40992849/article/details/80985417 

标签:target,merge,into,更新,source,mysql,age,name
From: https://www.cnblogs.com/kelelipeng/p/17215940.html

相关文章

  • Mysql数据库未添加索引引发的生产事故
    最近开发的新功能主要是首页的红点提示功能,某个用户登录系统app,然后进入某一个功能模块,在该功能下面有很多地方可以操作,新功能就是根据用户信息查询当月是否存在新的......
  • 12、MySQL数据库配置
    MySQL系统数据库MySQL系统数据库主要包括以下几个:mysql数据库:用于存储MySQL的权限信息和系统变量等,包括user表、db表、host表等,这些表是管理MySQL权限的重要基础......
  • MySQL 考试练习题
    1、用户表account1、用户表account(用户编号userid,用户名fullname,密码passward,性别sex,住址adderss,邮箱email,电话phone)account(useridchar(6),fullnamechar(4),passwar......
  • 如何将自定义的日志直接写入到 mysql 数据库中?
    要将自定义的日志直接写入MySQL数据库中,您可以使用以下步骤:安装MySQL数据库,并创建一个新的数据库和表来存储日志数据。在您的代码中,使用MySQL连接器来连接到MySQL数据库。创......
  • mysql备份还原
    本次试验用的是mysqldump进行备份。1、操作系统的Shell下,执行  mysqldump-umysql-p db1>/mysqlbak/db1.sql       说明:-umysql内mysql是数据库的登......
  • mysql ERROR 3948 (42000): Loading local data is disabled; this must be enabled o
    mysql>selectversion();+-----------+|version()|+-----------+|8.0.20|+-----------+1rowinset(0.00sec)使用loaddata导入数据时候报错......
  • MySQL Variables--slave_exec_mode参数
    基础信息MySQL提供参数slave_exec_mode来控制主从复制中遇到的数据冲突和错误,有严格模式(STRICT)和冥等模式(IDEMPOTENT)两种选项,默认为严格模式。在严格模式下,MySQL会严......
  • windows系统mysql定时备份
    如下:一、创建bat任务脚本1.新建txt文档2.打开txt文档,并粘贴入以下内容3.按照自己的需求对内容进行修改,并删除掉//后内容以及中文空格,否则会运行失败4.保存,并将文件后......
  • mysql 有守护进程导致无法kill停止
    现象:停止mysqld服务时,发现kill进程后,过一段时间服务会自动重启。查看发现是守护进程导致可以试下以下办法方式一:使用service停止:servicemysqldstop方式二:......
  • MySQL 的事务隔离级别和锁
    MySQL的事务隔离级别(IsolationLevel)  数据库锁,分为悲观锁和乐观锁,“悲观锁”悲观锁一般利用SELECT…FORUPDATE类似的语句乐观锁利用CAS机制,并不会对数据......