MySql插入数据,存在则更新
准备测试数据
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
- 尝试将新行插入表中
- 由于主键或唯一索引发生重复键错误而导致插入失败:
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插入数据,存在则更新相关推荐
- mysql插入数据与删除重复记录的几个例子(收藏)
mysql插入数据与删除重复记录的几个例子 12-26shell脚本实现mysql数据的批量插入 12-26mysql循环语句插入数据的例子 12-26mysql批量插入数据(insert into ...
- mysql插入数据,根据相关字段判断这条数据是否存在,存在就不插入,不存在就插入
mysql插入数据,根据相关字段判断这条数据是否存在,存在就不插入,不存在就插入 简单写一个Android MySQL数据库管理帮助类,代码质量有待提升. public class MySQLiteO ...
- MySQL插入数据的三种方法
Mysql 插入数据 1.mysql中常用的三种插入数据的方法 insert into:正常的插入数据,插入数据的时候会检查主键或者唯一索引,如果出现重复就会报错. replace into:替换数据 ...
- MySQL 插入数据时,中文乱码问题的解决
MySQL 插入数据时,中文乱码问题的解决 参考文章: (1)MySQL 插入数据时,中文乱码问题的解决 (2)https://www.cnblogs.com/sunzn/archive/2013/0 ...
- linux mysql插入中文乱码_解决Linux下Tomcat向MySQL插入数据中文乱码问题
一.问题 在windows上面使用eclipse开发的项目在windows上面运行一切正常,部署到腾讯云时出现向MySQL数据库中插入数据是中文乱码 二.解决办法 1.尝试一 直接在linux上面使用 ...
- c# 向mysql插入数据_C#连接mysql数据库 及向表中插入数据的方法
mysql 语句操作: 创建数据库:create database hotelATMDb; use hotelATMDb; C#连接mysql 1.引用 dll MySql.Data.dll 下载地址 ...
- mysql c接口返回自增id_详解mysql插入数据后返回自增ID的七种方法
引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...
- java mysql 插入 乱码_java向mysql插入数据乱码问题的解决方法
遇到java向mysql插入数据乱码问题,如何解决? MySQL默认编码是latin1 mysql> show variables like 'character%'; +----------- ...
- mysql 新增返回主键自增id_详解mysql插入数据后返回自增ID的七种方法
引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...
- jdbc 3种获得mysql插入数据的自增字段值的方法_JDBC 3种获得mysql插入数据的自增字段值的方法...
JDBC 3种获得mysql插入数据的自增字段值的方法. 1. Retrieving AUTO_INCREMENT Column Values using Statement.getGenerated ...
最新文章
- 2 万字长文深入详解 Kafka,从源码到架构全部讲透
- 跨链Cosmos(3)IBC协议二
- Android——浙理体育(飞翔的红蜻蜓)训练记录上传与查询测试DEMO解决方案
- pandas 每一列相加_Python数据分析——Pandas 教程(上)
- ImportError: No module named google.protobuf.internal
- 快速设置XMind中的设置联系
- LINUX CGROUP 概述
- 【高效复习】《数据库系统概论》王珊版
- iconfont-阿里巴巴矢量图标库的使用
- YOLOv2相比于yolov1的改进
- torch 矩阵运算
- 计算机图片处理是什么应用,计算机图像处理技术及其应用领域
- Derivation of Sparse Bayesian Learning
- Qt 之自定义搜索框QLineEdit
- 【人工智能 AI 2.0】阿里VP贾扬清被曝将离职创业:建大模型基础设施 已火速锁定首轮融资
- 【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割
- 数据库不能不了解的知识点(上)
- linux火狐弹出框乱码,Linux系统下火狐浏览器页面出现乱码怎么办?
- 【python学习】matplotlib图例分开显示
- 万事开头难,全英文???别怕有我!!!
热门文章
- 拉格朗日插值与范德蒙矩阵
- flutter udp广播
- Docker下使用网桥形式
- 仿豆丁百度文库网页版阅读器完整解决方案,linux windows
- linux信号之SIGHUP
- 服务器遭遇挖矿脚本入侵,歪果仁玩的真花
- unity learn—— ML_Agent:Hummingbirds中文教程 自译(六——准备训练)
- 徐有高【TTG多玩自购】PS3《英雄传说 闪之轨迹》
- DoTween DOKill() 和 Kill()
- catboost和xgboost_Catboost:超越Lightgbm和XGBoost的又一个boost算法神器