文档章节

MySQL —— INSERT 中ON DUPLICATE KEY UPDATE的使用

剧与
 剧与
发布于 2018/03/15 16:53
字数 289
阅读 389
收藏 0

需求:如果存在则更新,如果不存在则新增。

方法:用redis的kv就可以很容易的实现,在MySQL中也有这样的功能: INSERT 中ON DUPLICATE KEY UPDATE

使用条件:其中a、b、c字段必须有至少一个为UNIQUE索引或PRIMARY KEY,以便确定记录唯一性

语句:
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=4

如果行作为新记录被插入,则受影响行的值为1;如果原有的记录被更新,则受影响行的值为2

您可以在UPDATE子句中使用VALUES(col_name)函数从INSERT...UPDATE语句的INSERT部分引用列值。VALUES()函数只在INSERT...UPDATE语句中有意义,其它时候会返回NULL

示例:

INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(b) + VALUES(c)

© 著作权归作者所有

剧与

剧与

粉丝 15
博文 47
码字总数 41334
作品 0
成都
后端工程师
私信 提问
TiDB 源码阅读系列文章(十六)INSERT 语句详解

在之前的一篇文章 《TiDB 源码阅读系列文章(四)INSERT 语句概览》 中,我们已经介绍了 INSERT 语句的大体流程。为什么需要为 INSERT 单独再写一篇?因为在 TiDB 中,单纯插入一条数据是最简...

TiDB
2018/08/20
45
0
MySQL JDBC 的 BATCH 执行和 rewriteBatchedStatements 参数

本来以为这是一个已解决的问题,但是发现有同学不知道,所以写一下。 经常使用 MySQL 的同学可能知道,默认情况下 MySQL JDBC 驱动是不支持 BATCH 的: 在真正执行的时候,MySQL JDBC 驱动仍...

长源
2018/08/01
0
0
MYSQL无重复插入数据更新语法&sql一句话使insert时若主键重复则更新

我来说两句 收藏 我要投稿 MYSQL无重复插入数据更新语法&sql一句话使insert时若主键重复则更新 如果你指定了ON DUPLICATE KEY UPDATE命令语句,那么在唯一索引或者主索引的作用下将不插入与数...

碧海潮生曲
2013/03/02
439
0
mysql存在则更新,不存在则插入

INSERT INTO ON DUPLICATE KEY UPDATE 与 REPLACE INTO,两个命令可以处理重复键值问题,在实际上它之间有什么区别呢? 前提条件是这个表必须有一个唯一索引或主键。 unique 1、REPLACE发现重...

LCZ777
2015/09/22
5.6K
0
本文主要总结关于mysql的优化(将会持续更新)

ON DUPLICATE KEY UPDATE 事件背景 在阅读公司原来代码的过程中,我发现了这样一段代码: 在语义的理解上,应当是索引冲突则更新原有索引数据。经过查阅资料,我总结如下: 假设业务上我们需要...

o0无忧亦无怖
2018/08/14
119
0

没有更多内容

加载失败,请刷新页面

加载更多

JVM -- Java堆结构及对象分代

Hello,今天记录下 Java虚拟机中的其中一个重点知识 --> Java堆。 一起学习,一起进步。继续沉淀,慢慢强大。希望这文章对您有帮助。若有写的不好的地方,欢迎评论给建议哈! 初写博客不久,...

猫狗熊
20分钟前
3
0
elastic-job的使用

概述: 公司用了elastic-job来执行定时任务和管理定时任务,所以最近研究了一下写了个demo,由于我是把zookeeper部署在了docker上的,所以这里简单介绍下docke的基础命令。 1、Docker基础命令...

你个小机灵鬼
20分钟前
3
0
Cadence Allegro 中skill应用教程:让代码替我们打工

SKILL语言是Candence提供给用户的一个开发接口,利用其本身提供的接口函数和SKILL语言完成自动化操作的功能。 怎么查看SKILL: 1.可以直接用写字板打开进行编辑或看功能说明。 2.想自己写或改...

demyar
21分钟前
3
0
如何看待技术债务

关于技术债务,做开发的同学对如下场景应该不陌生: 为了敢项目进度,详细设计、单元测试等过程就不写了,以后补 需求变化万千,原本架构设计无法满足新的需求,可是又不想动架构,于是绕过架...

嘿嘿嘿IT
23分钟前
3
0
深入理解 web 协议(一)- http 包体传输

本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/WlT8070LlrnSODFRDwZsUQ 作者:吴越 开坑这个系列的原因,主要是在大前端学习的过程中遇到了不少跟web协议有关的问...

vivo互联网技术
23分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部