注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天朝布衣田中码农参上

苦逼码农的点点滴滴,请多多指教!

 
 
 

日志

 
 
 
 

MySql避免插入重复记录的三种方法  

2017-07-28 17:52:08|  分类: Mysql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
MySQL在插入记录时,经常会有重复值的出现,这种时候如果不想插入出错,就必须先行查找记录是否存在,如存在就什么也不做,否则就插入记录。这样的话,实际操作会有稍稍的麻烦,但其实MySQL本身就支持避免重复插入记录方法,主要是用到了ignore,Replace,ON DUPLICATE KEY UPDATE三种方法。
1)使用ignore关键字
如果是表有主键primary或者唯一索引unique区分了记录的唯一性,那么可以使用:

insert IGNORE into site (id, name, url)values('1', '乐乐吧', 'http://www.593668.com');

当有重复记录就会忽略,执行后返回影响记录数0,如果是复制表,也可以用它来防止重复记录。

insert IGNORE into site (id, name, url) select id,name,url from old_site;

2)使用Replace
REPLACE的运行与INSERT很相像,但是如果旧记录与新记录有相同的值,则在新记录被插入之前,旧记录被删除。它有几种使用方式:
a.正常插入记录

REPLACE INTO site (id, name, url)values('1', '乐乐吧', 'http://www.593668.com');

b.复制表

REPLACE INTO site (id, name, url) select id,name,url from old_site;

c.更新字段

REPLACE INTO site SET url='http://www.593668.com',name='乐乐吧',id='1'

3)使用ON DUPLICATE KEY UPDATE
之前的文章《MySQL特有的INSERT语句末尾附加"ON DUPLICATE KEY UPDATE"的用法》已经讲过,这里就不再复述了。
  评论这张
 
阅读(0)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017