首页 > 数据库 >【达梦数据库】MySQL 的ON DUPLICATE KEY UPDATE语句在达梦数据库中使用的方式

【达梦数据库】MySQL 的ON DUPLICATE KEY UPDATE语句在达梦数据库中使用的方式

时间:2023-02-02 15:25:42浏览次数:63  
标签:mc 数据库 T2 UPDATE sex age DUPLICATE T1 id

背景

想要做数据同步,但不知道待同步的数据是新增或更新
于是想,如果数据库可以识别 InsertOrUpdate 就好了

使用的是达梦数据库

but:
1、达梦是没有 ON DUPLICATE KEY UPDATE 这样的语句的
2、达梦有merge into语句,可以平替一下。(虽然莫名感觉性能不会很高的样子)

参考使用样式:

1、针对一条数据的更新或者插入可以这样执行:

MERGE INTO t_person T1
USING (
  SELECT
  1 id,
  'test' mc,
  1 sex,
  25 age,
  FROM dual
) T2 ON (T1.id = T2.id)
WHEN NOT MATCHED THEN INSERT(id, mc, sex,
age) VALUES
(T2.id, T2.mc, T2.sex, T2.age)
WHEN MATCHED THEN UPDATE
SET T1.mc = T2.mc,T1.sex = T2.sex,T1.age = T2.age


2、针对多条数据进行批量更新或插入操作可以这样执行:

 MERGE INTO t_person T1
  USING (
  <foreach collection="list" item="item" index="index" separator="UNION ALL">
  SELECT
  #{item.id} id,
  #{item.mc} mc,
  #{item.sex} sex,
  #{item.age} age
  FROM dual
</foreach>
) T2 ON (T1.id = T2.id )
  WHEN NOT MATCHED THEN INSERT(id, mc, sex,
  age) VALUES
  (T2.id, T2.mc, T2.sex, T2.age)
  WHEN MATCHED THEN UPDATE
  SET T1.mc = T2.mc,T1.sex = T2.sex,T1.age = T2.age

参考:
原文链接:https://blog.csdn.net/qq_30490591/article/details/103294777

标签:mc,数据库,T2,UPDATE,sex,age,DUPLICATE,T1,id
From: https://www.cnblogs.com/aaacarrot/p/17086101.html

相关文章

  • Otter实现mysql数据库指定多个表实时单向同步
    背景生产库接入太多应用程序,现需要搭建从库用于测试并数据分析,由于并发量大,mysql自带的主从同步存在瓶颈,主从同步延迟增大,因此通过otter的方案实现主从同步。计划192.16......
  • 数据库:事务基础知识
    事务概述存储引擎支持情况可以使用SHOWENGINES命令查看Mysql支持事务的存储引擎有哪些。Mysql中只有InnoDB支持事务。基本概念事务:一组逻辑操作单元,使数据从一种状......
  • mysql数据库时间类型数据存储建议
    本文转载自:https://javaguide.cn/database/mysql/some-thoughts-on-database-storage-time.html 我们平时开发中不可避免的就是要存储时间,比如我们要记录操作表中这条记......
  • sql_server数据库
    问题:如何在SQLSERVER中合并时间和日期?解决方法1:使用+合并时间日期让我们运行以下命令:SELECTCAST(字段名ASDATETIME)+CAST(字段名ASDATETIME)AS[CombineDateTime......
  • INSERT INTO .. ON DUPLICATE KEY更新多行记录
     现在问题来了,如果INSERT多行记录,ONDUPLICATEKEYUPDATE后面字段的值怎么指定?要知道一条INSERT语句中只能有一个ONDUPLICATEKEYUPDATE,到底他会更新一行记录,还是更新......
  • 若依-更换数据库-sqlite
    基础我是在ruoyi-vue已经安装了mybatis-plus的基础上进行的修改关于SQLiteSQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。SQ......
  • 08-数据库信息展示
    数据信息展示#知识点:#1.获取数据库所有内容list=PersonInfo.objects.all()#2.html中的for循环{%forlsinlist%}<tr><td>{......
  • Springboot数据库配置文件加密
    引入工具依赖包:!--配置文件加密--><dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>1.......
  • 关于xxl-job中的慢sql引发的磁盘I/O飙升导致拖垮整个数据库服务
    背景:某天突然发现服务探测接口疯狂告警、同时数据库CPU消耗也告警,最后系统都无法访问;查看服务端日志,发现大量的报错如下:CommunicationsException:Communicationslink......
  • 大数据实时多维OLAP分析数据库Apache Druid入门分享-下
    @目录架构核心架构外部依赖核心内容roll-up预聚合列式存储Datasource和Segments位图索引数据摄取查询集群部署部署规划前置条件MySQL配置HDFS配置Zookeeper配置启动集群导......