结合官网案例一下是插入案例

insert into f_test(equipment_id,dtu_id,run_date,status,start_time,end_time,duration,
update_time,cnc_mprog,cnc_mcomt,grubbs_selected,grubbs_t,grubbs_trusted,standard_t,average,standard_deviation,xmax,xmin) 
values ('test-20211104','FC_ECU2021TESTA120','20211111','ALARM','2021-11-11 13:29:41.0','2021-11-11 14:00:34.0',1899,'2021-11-11 14:00:09.51','8','()',0,0,0,0,0,0,-1,-1) 
as new
on duplicate key update equipment_id=new.equipment_id,
dtu_id=new.dtu_id, run_date=new.run_date, status=new.status, 
start_time=new.start_time, end_time=new.end_time, duration=new.duration,
update_time=new.update_time, cnc_mprog=new.cnc_mprog, cnc_mcomt=new.cnc_mcomt, 
grubbs_selected=new.grubbs_selected, grubbs_t=new.grubbs_t, grubbs_trusted=new.grubbs_trusted, 
standard_t=new.standard_t, average=new.average, standard_deviation=new.standard_deviation, xmax=new.xmax, xmin=new.xmin

批量插入方式二在8.20以后会有警告但是也能插入成功

insert into f_test(equipment_id,dtu_id,run_date,status,start_time,end_time,duration,
update_time,cnc_mprog,cnc_mcomt,grubbs_selected,grubbs_t,grubbs_trusted,standard_t,average,standard_deviation,xmax,xmin) 
values ('test-20211104','FC_ECU2021TESTA120','20211111','ALARM','2021-11-11 13:29:41.0','2021-11-11 14:00:34.0',1853,'2021-11-11 14:00:09.51','8','()',0,0,0,0,0,0,-1,-1)

on duplicate key update equipment_id=values(equipment_id),
dtu_id=values(dtu_id), run_date=values(run_date), status=values(status), 
start_time=values(start_time), end_time=values(end_time), duration=values(duration),
update_time=values(update_time), cnc_mprog=values(cnc_mprog), cnc_mcomt=values(cnc_mcomt), 
grubbs_selected=values(grubbs_selected), grubbs_t=values(grubbs_t), grubbs_trusted=values(grubbs_trusted), 
standard_t=values(standard_t), average=values(average), standard_deviation=values(standard_deviation), xmax=values(xmax), xmin=values(xmin)

执行有如下警告

'VALUES function' is deprecated and will be removed in a future release. Please use an alias (INSERT INTO ... VALUES (...) AS alias) and replace VALUES(col) in the ON DUPLICATE KEY UPDATE clause with alias.col instead
插入成功更新成功

mysql 官网案例批量更新

https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html

注意事项:需要写上主键,没主键唯一索引,不然会找索引更新

附上表名

CREATE TABLE `f_test` (
  `equipment_id` varchar(50) NOT NULL,
  `dtu_id` varchar(50) DEFAULT NULL,
  `run_date` varchar(8) NOT NULL,
  `status` varchar(50) NOT NULL,
  `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `end_time` timestamp NULL DEFAULT NULL,
  `duration` bigint DEFAULT NULL,
  `update_time` timestamp NULL DEFAULT NULL,
  `cnc_mcomt` varchar(100) DEFAULT NULL,
  `grubbs_selected` bigint DEFAULT '0',
  `grubbs_t` decimal(18,4) DEFAULT '-1.0000',
  `grubbs_trusted` bigint DEFAULT '0',
  `standard_t` decimal(18,4) DEFAULT '-1.0000',
  `average` decimal(18,4) DEFAULT '-1.0000',
  `standard_deviation` decimal(18,4) DEFAULT '-1.0000',
  `xmax` decimal(18,4) DEFAULT '-1.0000',
  `xmin` decimal(18,4) DEFAULT '-1.0000',
  `cnc_mprog` varchar(255) DEFAULT NULL,
  `workpiece_model` varchar(128) DEFAULT NULL,
  `workpiece_no` varchar(128) DEFAULT NULL,
  `fill_data_status` int DEFAULT '0',
  PRIMARY KEY (`equipment_id`,`run_date`,`start_time`,`status`),
  KEY `idx_start_time` (`start_time`),
  KEY `idx_run_date` (`run_date`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

mysql 8.20联合主键批量更新案例,存在即更新,不存在插入相关推荐

  1. MySQL查询之 联合主键

    我们知道MySQL的主键是一个非空的,且唯一的键,如果我们需要两个或者多个呢 create table stu(id int,name varchar(20),score int,primary ke ...

  2. mysql建表 联合主键

    建表:(前4个联合为主键) CREATE TABLE `climate_one_key` (`纬度` float(255,2) NOT NULL COMMENT '纬度',`经度` float(255 ...

  3. MyBatisPlus联合主键批量更新

    方式一注解方式 @MppMultiId updateByMultiId 方式二条件构造器 Wrapper update(updateWrapper),一条一条更 方式三case when <up ...

  4. mysql 联合主键_Mysql 创建联合主键

    Mysql 创建联合主键 2008年01月11日 星期五 下午 5:21 使用primary key (fieldlist) 比如: create table mytable ( aa int, bb ...

  5. mysql联合主键是不是索引_MySQL:联合主键、索引

    MySQL数据库用联合主键.用两张表测试. # 1分钟数据表 CREATE TABLE md_1min2( `d_1min` DATETIME(3), `code` CHAR(16), `open` ...

  6. mybatis-plus/mybatis的组件们——拦截器、字段填充器、类型处理器、表名替换、SqlInjector(联合主键处理)

    最近有个练手的小例子,大概就是配置两个数据源,从一个数据源读取数据写到另一个数据源,虽然最后做了出来,但是不支持事务...就当是对mybatis-plus/mybatis组件使用方式的记录吧,本次例子 ...

  7. mysql 尽量不要使用 联合主键_MySQL 使用规范

    MySQL 使用规范 以下规范适用在线交易(OLTP)系统的数据库.数据仓库与分析系统也可以参考. 命名规范 表名.字段名.索引名使用小写字母.数字,采用下划线分割 表名采用模块名3个缩小字符_前缀, ...

  8. MySql基础篇---003 SQL之DDL、DML、DCL使用篇:创建和管理表 ,数据处理之增删改,MySQL数据类型精讲 ,约束:联合主键

    第10章_创建和管理表 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. 基础知识 1.1 一条数据存储的过程 存储数据是处理数据的第一步.只有正确地 ...

  9. SQL Server中的联合主键、聚集索引、非聚集索引、mysql 联合索引

    我们都知道在一个表中当需要2列以上才能确定记录的唯一性的时候,就需要用到联合主键,当建立联合主键以后,在查询数据的时候性能就会有很大的提升,不过并不是对联合主键的任何列单独查询的时候性能都会提升,但我 ...

最新文章

  1. Android Tab大总结 Fragment+TabPageIndicator+ViewPager
  2. otto android,Android Otto调研
  3. automapper
  4. 顺序队列的表示和实现
  5. 系统分析的几个好工具
  6. dede整站动态化或是整站静态化方法
  7. C语言图形化编程 【二】
  8. SSh结合Easyui实现Datagrid的分页显示
  9. cas server php下载,关于用CAS Server与Php、Jetty配置实现SSO#4
  10. 使用JavaScript弹出Confirm对话框
  11. python bottle部署_如何使用python-Bottle框架创建REST API应用程序,以及如何在apache服务器上部署restapi应用程序?...
  12. 微软vc运行库地址VC9VC11
  13. C语言两个数比较大小和三个数比较大小,代码
  14. 郑州市城市建成区20年时空变化特征提取与分析
  15. 【unity】编辑模式预览Animator动作,2种实现。 其中一种 playback模式是Cinema Director用的会使Unity Crash
  16. 《失业的程序员》(十二):潜意识的智商 .
  17. 计算机音乐谱东演员,计算机音乐谱光辉岁
  18. Android 用 broadcast receiver组件实现音乐盒
  19. 数据挖掘:实用案例分析 下载_真经阁丨萌低龄,超实用“萌系”呈现技巧及设计案例分析...
  20. java-net-php-python-ssh学生信息管理系统录像演示录像2019计算机毕业设计程序

热门文章

  1. Linux下游戏大作赏析
  2. 【云计算入门3】基础技术和并行计算模型
  3. tif文件如何转换成jpg?图文步骤详解
  4. 不要再说阿里巴巴是电商公司了,人家是科技公司…
  5. Kibana: 如何在 Kibana 中生成 Scripted fields
  6. oracle清理数据及释放表空间
  7. Floyd 弗洛伊德算法的实现
  8. ustc计算机科学与技术学院,连德富 - 中国科学技术大学 - 计算机科学与技术学院...
  9. 计算机音频服务无法启动,win10系统audioendpointbuilder音频服务无法启动的解决办法...
  10. 运行PSMNet网络时遇到的问题及解决方案