Mysql实例insert into … on duplicate key updatereplace into 多行数据介绍

Mysql实例insert into … on duplicate key updatereplace into 多行数据介绍,第1张

概述介绍《Mysql实例insert into … on duplicate key update / replace into 多行数据介绍》开发教程,希望对您有用。

《MysqL实例insert into … on duplicate key update / replace into 多行数据介绍》要点:
本文介绍了MysqL实例insert into … on duplicate key update / replace into 多行数据介绍,希望对您有用。如果有疑问,可以联系我们。

MysqL学习场景是这样的,我有KV型的表,建表语句如下:

代码如下:
CREATE table `dkv` (
  `k1` int(11) NOT NulL DEFAulT '0',
  `k2` int(11) NOT NulL DEFAulT '0',
  `val` varchar(30) DEFAulT NulL,
  PRIMARY KEY (`k1`,`k2`)
) ENGINE=InnoDB DEFAulT CHARSET=utf8

MysqL学习数据大概是这样的:

MysqL学习+----+----+-----------+
| k1 | k2 | val       |
+----+----+-----------+
|  1 |  1 | value 1-1 |
|  1 |  2 | value 1-1 |
|  1 |  3 | value 1-1 |
|  1 |  5 | value 1-1 |
|  1 |  7 | value 1-1 |
+----+----+-----------+

MysqL学习当我插入一条数据时,我要判断(k1,k2)是否已经存在(1条selete),若存在就update,不存在就insert,这是一个典型的merge过程,虽然按照PK执行 *** 作的速度非常快,但是毕竟sql交互量上去了,如果我有100笔这样的sql,那这个开销是很可观的,有没有什么一条sql就能搞定的事情呢?

MysqL学习有两种写法:

MysqL学习第一种: insert into … on duplicate key update

代码如下:
insert DELAYED into dkv 
values
(1,2,'new 12a'),
(1,3,'new 33ba'),4,'new 23222'),6,'new 12333'),8,'new vaaaa'),20,'new vaff'),25,'new vaff')
ON DUPliCATE KEY UPDATE val=VALUES(val);

MysqL学习第二种 replace into:

代码如下:
replace into dkv 
values
(1,'new vaff');

MysqL学习最终都能将数据改成这样:

代码如下:
+----+----+-----------+
| k1 | k2 | val       |
+----+----+-----------+
|  1 |  1 | value 1-1 |
|  1 |  2 | new 12a   |
|  1 |  3 | new 33ba  |
|  1 |  4 | new 23222 |
|  1 |  5 | value 1-1 |
|  1 |  6 | new 12333 |
|  1 |  7 | value 1-1 |
|  1 |  8 | new vaaaa |
|  1 | 20 | new vaff  |
|  1 | 25 | new vaff  |
+----+----+-----------+
总结

以上是内存溢出为你收集整理的Mysql实例insert into … on duplicate key update / replace into 多行数据介绍全部内容,希望文章能够帮你解决Mysql实例insert into … on duplicate key update / replace into 多行数据介绍所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1159901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存