《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 多行数据介绍所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)