mysql中插入记录时不存在时插入已经存在则更新
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql中插入记录时不存在时插入已经存在则更新,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3418字,纯文字阅读大概需要5分钟。
内容图文
![mysql中插入记录时不存在时插入已经存在则更新](/upload/InfoBanner/zyjiaocheng/544/e6fdbe0d384d4583a222cddc53bde554.jpg)
有很多朋友都在问关于mysql中插入记录时不存在时插入已经存在则更新这个问题怎么操作,下面我来介绍介绍。ON DUPLICATE KEY UPDATE的使用
如果您指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执
行旧行UPDATE。例如,如果列a被定义为UNIQUE,并且包含值1,则以下两个语句具有相同的效果:
代码如下:
代码如下 | |
mysql> INSERT INTO table (a,b,c) VALUES (1,2,3) |
实例1
代码如下 | |
mysql> truncate `200702`; mysql> select * from `200702`; mysql> insert into `200702` (`domain`, `2nd_domain`, `tld`, `query_ns1`, `query_ns2`, `report_date`) values ('dnspod.com', 'dnspod', 'com', 1000, 2000, '2007-02-04') ON DUPLICATE KEY UPDATE `query_ns1` = `query_ns1` + 1000, `query_ns2` = `query_ns2` + 2000; mysql> select * from `200702`; mysql> insert into `200702` (`domain`, `2nd_domain`, `tld`, `query_ns1`, `query_ns2`, `report_date`) values ('dnspod.com', 'dnspod', 'com', 1000, 2000, '2007-02-04') ON DUPLICATE KEY UPDATE `query_ns1` = `query_ns1` + 1000, `query_ns2` = `query_ns2` + 2000; mysql> select * from `200702`; mysql> |
当然,建表的时候,千万别忘记了给domain做一个unique
代码如下 | |
UNIQUE KEY `domain` (`domain`,`report_date`) |
key存在则更新,不存在则插入
代码如下 | |
insert into .... on duplicate key update |
对于需要根据原记录进行操作的.如表中icount字段用于计数,当没有记录时,插入的value为0,当有记录时,value需要
更新为value+1,这时replace就不能完成这个功能.使用insert则可以,其基本语法是insert into ... on duplicate
key update...,如上述语句为
代码如下 | |
insert into t_test set ikey=1,value='a',value2=1 on duplicate key update value2=value2+1; |
如果表中有多个唯一索引,如对value字段加个unique key.这时表中有ikey和value两个唯一索引,replace会把所有与
其唯一索引值相同的数据项删除,再插入新记录.如表中有两个记录
代码如下 | |
+------+-------+--------+ |
则replace into t_test set ikey=1,value='a',icount=0;会把表中的两条记录都删除,然后插入新记录.
而insert into t_test set ikey=1,value='a',icount=0 on duplicate key update icount=icount+1则只更新一条
记录.其效果相当于
代码如下 | |
update t_test set icount=icount+1 where ikey=1 or value='a' limit 1; |
内容总结
以上是互联网集市为您收集整理的mysql中插入记录时不存在时插入已经存在则更新全部内容,希望文章能够帮你解决mysql中插入记录时不存在时插入已经存在则更新所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。