mysql插入并更新(on duplicate key update)

article/2025/6/26 12:12:09

Mysql插入数据,如果存在此数据,那么就更新这条数据,否则插入数据。

使用 on duplicate key update。

准备工作

建表

create table user_info(id int auto_increment primary key,name varchar(20),user_code varchar(20) unique not null,age int 
);

建立了一个表,这个表有主键(id),有唯一键(user_code)。

插入数据

insert into user_info(name,user_code,age) values('king','u_001',22);
insert into user_info(name,user_code,age) values('king2','u_002',24);
insert into user_info(name,user_code,age) values('king3','u_003',25);

主键更新

利用主键(id)匹配是否有数据插入更新。

INSERT into user_info(id,name,user_code) values(1,'Tom','i_001') on DUPLICATE key  UPDATE  id=1,name='Tom2',user_code='t_001';INSERT into user_info(id,name,user_code) values(1,'Tom','i_001') on DUPLICATE key  UPDATE name='Tom2',user_code='t_001';# 这两种都可以更新同一条数据。

此处根据id=1判断,如果存在id=1的数据,那么就不insert,而是执行update。

如果是依据主键更新,那么唯一键有可以被更新

在这里插入图片描述
执行后发现是影响了两条数据。

再查看下数据,发现id=1的数据被更新了,并没有新插入一条数据,连user_code也更新了。
在这里插入图片描述

根据唯一键更新

不传入id,而根据user_code这个唯一键判断是否是匹配的数据,来进行更新。

INSERT into user_info(name,user_code) values('Tom01','t_001') on DUPLICATE key  UPDATE  name='Tom001',user_code='t_0001';

在这里插入图片描述
插入是判断user_code=t_001,发现表里面已经有此条数据,那么就执行更新语句,发现唯一键也被更新了。
在这里插入图片描述

执行插入

INSERT into user_info(name,user_code) values('Tom01','t_002') on DUPLICATE key  UPDATE  name='Tom001',user_code='t_0001';

在这里插入图片描述
在这里插入图片描述
此处执行了插入数据,因为根据user_code=t_002发现数据库并没有这条数据,那么执行insert。

注意项

如果没有id,也不根据唯一键user_code,那么就只会执行插入,而不会有更新。

INSERT into user_info(name,age) values('Tom',22) on DUPLICATE key  UPDATE name='Tom2',age = 23;

更新时影响条数,为1.
在这里插入图片描述

操作影响条数
插入(insert)1
更新(update)1
on duplicate key update (插入)1
on duplicate key update (更新)2

那么可以想象一下,插入并更新应该是做了delete操作,然后insert新数据,当然这仅仅是猜测。


http://chatgpt.dhexx.cn/article/wY1tAt6U.shtml

相关文章

[笔记]MySQL 插入导致死锁

线上遇到的 MySQL 插入导致死锁,问题排查. 场景复现 MySQL 版本: 5.7.36 数据库存储引擎: InnoDB 事务隔离级别: REPEATABLE-READ 1. 创建测试表 DROP TABLE IF EXISTS tb_task; CREATE TABLE tb_task (id int(11) NOT NULL AUTO_INCREMENT,task_id int(11),order_id int(1…

mysql插入数据中文_mysql插入中文数据的方法

mysql插入中文数据的方法 发布时间:2020-09-04 09:26:29 来源:亿速云 阅读:92 作者:小新 小编给大家分享一下mysql插入中文数据的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下&#xf…

python操作mysql插入数据

python操作mysql插入数据 首先安装pymysql这个库pycharm连接数据库操作mysql语句连接数据库插入数据 由于有时候,数据存在excel表格中,需要借助python去读取数据然后再插入到数据库中 首先安装pymysql这个库 pycharm连接数据库 这一步可要可不要&#…

python+mysql插入数据

mysql数据处理之插入数据 目的 实现数据插入到mysql,比如我们需要插入1w数据到数据,可以通过这种方式插入,或者也可以将python 自动化的数据,报存到数据库中。 1、连接数据库 import pymysql import os import time class dat…

MySQL插入汉字报错的解决方案

MySQL插入汉字报错的原因是字符集的问题,MySQL默认使用的是Latin(拉丁文)字符集,可以在创建数据库时指定其字符集:CREATE DATABASE test DEFAULT CHARACTER SET utf8 或者修改MySQL的配置文件,可以参考以下…

公众号涨粉神器“易拉宝”上线啦!快速增加精准粉丝

涨粉、涨粉、涨粉! 这从来都是公众号运营一个老大难的问题。 相信有很多小主们都在运营公众号,每天为了少得可怜的新增粉丝而发愁。没办法,流量入口都被大号占据了,当然很难获得粉丝。 我们经常能在朋友圈、微信群里看到“粉丝…

50行代码实现的艺术签名设计微信小程序,轻松对接公众号,涨粉神器,学习赚钱两不误.微信公众号引流工具.html,python学习小项目.艺术签名设计微信小程序,前端学习小项目有趣的项目

50行代码实现的艺术签名设计微信小程序,轻松对接公众号,涨粉神器,学习赚钱两不误 先看效果 这个小程序实现艺术签名设计的功能 对接到公众号之后,相当于给你的公众号添加了一个功能,别人关注公众号后,可以从自定义菜单中设计艺术签名 (我一个搞后台开发的,布局确实做得很low,…

前端工程师的一大神器——puppeteer

大家好,我是若川。欢迎加我微信 ruochuan12,长期交流学习。今天推荐神器puppeteer,我猜有挺多人不知道。文章不长,看完有空也可以试玩。 我18年也写过一篇puppeteer爬取生成pdf的文章,时间真快。前端使用puppeteer 爬虫…

自制炒股盯盘神器——python实现GUI版本

有公众号粉丝在后台反馈:问能不能做一个可以在Windows环境下运行的GUI窗口,用来完成盯盘的功能。经过这几天的调试,现在这个小工具的基本功能已经初步调试完毕。下面就来看看它长什么样子吧: 主界面 主界面比较简单,只…

二十一个微信公众号推广技巧

微信营销说起来门槛很低,人人都可以做,门槛又很高,做到很好,需要很多的资源和投入,不说别的,要推广公众号,发展用户就是挑战,例如微信认证需要500用户是个门槛。也许你会抱怨为什么&…

gitbook 入门教程之还在搞公众号互推涨粉?gitbook 集成导流工具,轻轻松松躺增粉丝!...

相信大多数博客作者都或多或少有过这样想法: 现在各种平台这么多,想要实现全平台发布就要到处复制粘贴,等我有空一定做统一平台一次性全部解决! 不知道正在阅读文章的你,有没有这样的想法? 反正我确实这么想过,甚至 github 上相关项目早已创建,可一直迟迟没有下一步,要么是工作…

相见恨晚的IDEA热部署神器 JRebel

点击蓝色“java大数据修炼之道”关注我哟加个“星标”,每晚21:00,一起学技术来源: github.com/judasn/IntelliJ-IDEA-Tutorial/blob/master/jrebel-setup.md 作者: duanluanPart1JRebel 介绍 在 Java Web 开发中, 一般更新了 Java 文件后要手…

这5个摸鱼神器太火了!程序员:知道了快删!

这届打工人最喜欢的两个词 除了下班,就是摸鱼 鲁迅曾说过:要想成为一名合格的打工人 摸鱼是必备技能之一 △ 图源网络,如侵删 适(放)当(空)摸(自)鱼(己&#…

gitbook 入门教程之还在搞公众号互推涨粉?gitbook 集成导流工具,轻轻松松躺增粉丝!

相信大多数博客作者都或多或少有过这样想法: 现在各种平台这么多,想要实现全平台发布就要到处复制粘贴,等我有空一定做统一平台一次性全部解决! 不知道正在阅读文章的你,有没有这样的想法? 反正我确实这么想过,甚至 github 上相关项目早已创建,可一直迟迟没有下一步,要么是工…

单条视频播放超6000万,涨粉24万,撒狗粮也能轻松上热门?

在如今这个CP满天飞的时代,“无CP,无流量”似乎已成为金科玉律,不少沙雕网友常调侃:我可以单身,但我的CP一定要结婚。 在这样的粉丝经济背景下,也催生出了不少情侣KOL,他们都曾凭借在短视频中的…

卧槽,又一款Python神器

写Python代码最头疼的两件事是什么?我总结了两点 1、Windows 平台安装第三方包经常失败的问题,还记得第一次安装mysql依赖包时的那个场景吗?怎么都装不上。 2、虚拟环境切换的问题,如果我们同时在一台电脑上开发多个项目&#xff…

教培企业如何引流增粉?

教育培训行业,经过2020年疫情的影响,开始与互联网加速融合,以在线教育这个模式迅速出圈。 在线教育,可以突破时间和地域的限制,将优质的教育资源通过互联网和线上工具,触达更多区域更大范围的用户&#xf…

神器DeskGo!

本文,给大家带来一款超级良心的桌面整理工具,文末有下载方式! 使用电脑过程中,一直都存在一个令人矛盾的问题--文件是否放在桌面。 对于我来说,喜欢把各种各样的东西放在桌面,这对于使用过程中寻找文件带来…

月均200wUP主活跃的B站涨粉密码是什么?

本篇关键词:B站、UP主、涨粉、内容创作 B站是Z世代高度聚集的文化社区和视频平台。越来越多UP主加入构建出一个源源不断产出浓厚Z世代气息的多元文化社区。月均活跃UP主数量达200万的B站,UP主们如何实现粉丝的长效增长? 风格创作的魔力 B站…

ICCV2021涨点神器:新方式在视觉类领域提升精度(附源代码)

关注并星标 从此不迷路 计算机视觉研究院 公众号ID|ComputerVisionGzq 学习群|扫码在主页获取加入方式 计算机视觉研究院专栏 作者:Edison_G 基于非局部的块设计用于捕获计算机视觉任务中的远程时空依赖性。尽管表现出出色的性能,…