准备测试数据

CREATE TABLE `tb_user` (`id` bigint NOT NULL AUTO_INCREMENT,`name` varchar(50) NOT NULL DEFAULT '',`nick_name` varchar(50) DEFAULT NULL,`mail` varchar(50) NOT NULL DEFAULT '',PRIMARY KEY (`id`),UNIQUE KEY `name` (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3

1.ON DUPLICATE

INSERT INTO tb_user (name,nick_name, mail)
VALUES ('kevin','kevin', 'kevin@163.com')
ON DUPLICATE KEY UPDATE nick_name='kevin',mail='kevin@163.com';

当name=’‘kevin’'不存在时插入,否则更新该数据nick_name, mail 字段

note: 该语句生效的前提是插入数据存在主键或者唯一索引,否则只会插入新的数据;
DUPLICATE不会删除原有的记录。即:不会破坏索引。

2. REPLACE INTO

replace into 跟 insert 功能类似,不同点在于:replace into

  1. 尝试将新行插入表中
  2. 由于主键或唯一索引发生重复键错误而导致插入失败:
    a. 从表中删除具有重复键值的冲突行
    b. 再次尝试将新行插入表中,会破坏索引、重新维护索引

note:插入数据必须有主键或者是唯一索引!否则,replace into 会直接插入数据,这将导致表中出现重复的数据;

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

MySql插入数据,存在则更新相关推荐

  1. mysql插入数据与删除重复记录的几个例子(收藏)

    mysql插入数据与删除重复记录的几个例子 12-26shell脚本实现mysql数据的批量插入 12-26mysql循环语句插入数据的例子 12-26mysql批量插入数据(insert into ...

  2. mysql插入数据,根据相关字段判断这条数据是否存在,存在就不插入,不存在就插入

    mysql插入数据,根据相关字段判断这条数据是否存在,存在就不插入,不存在就插入 简单写一个Android MySQL数据库管理帮助类,代码质量有待提升. public class MySQLiteO ...

  3. MySQL插入数据的三种方法

    Mysql 插入数据 1.mysql中常用的三种插入数据的方法 insert into:正常的插入数据,插入数据的时候会检查主键或者唯一索引,如果出现重复就会报错. replace into:替换数据 ...

  4. MySQL 插入数据时,中文乱码问题的解决

    MySQL 插入数据时,中文乱码问题的解决 参考文章: (1)MySQL 插入数据时,中文乱码问题的解决 (2)https://www.cnblogs.com/sunzn/archive/2013/0 ...

  5. linux mysql插入中文乱码_解决Linux下Tomcat向MySQL插入数据中文乱码问题

    一.问题 在windows上面使用eclipse开发的项目在windows上面运行一切正常,部署到腾讯云时出现向MySQL数据库中插入数据是中文乱码 二.解决办法 1.尝试一 直接在linux上面使用 ...

  6. c# 向mysql插入数据_C#连接mysql数据库 及向表中插入数据的方法

    mysql 语句操作: 创建数据库:create database hotelATMDb; use hotelATMDb; C#连接mysql 1.引用 dll MySql.Data.dll 下载地址 ...

  7. mysql c接口返回自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  8. java mysql 插入 乱码_java向mysql插入数据乱码问题的解决方法

    遇到java向mysql插入数据乱码问题,如何解决? MySQL默认编码是latin1 mysql> show variables like 'character%'; +----------- ...

  9. mysql 新增返回主键自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  10. jdbc 3种获得mysql插入数据的自增字段值的方法_JDBC 3种获得mysql插入数据的自增字段值的方法...

    JDBC 3种获得mysql插入数据的自增字段值的方法. 1. Retrieving AUTO_INCREMENT Column Values using Statement.getGenerated ...

最新文章

  1. 2 万字长文深入详解 Kafka,从源码到架构全部讲透
  2. 跨链Cosmos(3)IBC协议二
  3. Android——浙理体育(飞翔的红蜻蜓)训练记录上传与查询测试DEMO解决方案
  4. pandas 每一列相加_Python数据分析——Pandas 教程(上)
  5. ImportError: No module named google.protobuf.internal
  6. 快速设置XMind中的设置联系
  7. LINUX CGROUP 概述
  8. 【高效复习】《数据库系统概论》王珊版
  9. iconfont-阿里巴巴矢量图标库的使用
  10. YOLOv2相比于yolov1的改进
  11. torch 矩阵运算
  12. 计算机图片处理是什么应用,计算机图像处理技术及其应用领域
  13. Derivation of Sparse Bayesian Learning
  14. Qt 之自定义搜索框QLineEdit
  15. 【人工智能 AI 2.0】阿里VP贾扬清被曝将离职创业:建大模型基础设施 已火速锁定首轮融资
  16. 【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割
  17. 数据库不能不了解的知识点(上)
  18. linux火狐弹出框乱码,Linux系统下火狐浏览器页面出现乱码怎么办?
  19. 【python学习】matplotlib图例分开显示
  20. 万事开头难,全英文???别怕有我!!!

热门文章

  1. 拉格朗日插值与范德蒙矩阵
  2. flutter udp广播
  3. Docker下使用网桥形式
  4. 仿豆丁百度文库网页版阅读器完整解决方案,linux windows
  5. linux信号之SIGHUP
  6. 服务器遭遇挖矿脚本入侵,歪果仁玩的真花
  7. unity learn—— ML_Agent:Hummingbirds中文教程 自译(六——准备训练)
  8. 徐有高【TTG多玩自购】PS3《英雄传说 闪之轨迹》
  9. DoTween DOKill() 和 Kill()
  10. catboost和xgboost_Catboost:超越Lightgbm和XGBoost的又一个boost算法神器