mysql 有重复数据不插入或更新的处理方法


场景java

譬如管理员后台mysql

一、编辑在后台手工添加新闻sql

二、或者用爬虫抓到新闻后插入ide


因为一些不可描述的缘由。咱们可能须要会插入相同的新闻code


咱们利用news_code字段。索引


在程序(PHP ,java)拼凑SQL语句时,执行一个md5 过程,md5


让news_code值=md5(标题的内容+摘要的内容).咱们使用sql来表示it

insert into news(news_title,news_abstract,news_code)class

VALUES('这是一条java技术资讯','java技术资讯相关的新闻摘要'后台

,MD5(CONCAT('这是一条java技术资讯','java技术资讯相关的新闻摘要')))


同时咱们设置news_code字段为惟一索引


ON DUPLICATE KEY UPDATE   (这是mysql的特有语法)


通常跟在insert 后面出现。 若是insert会致使UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE


简单例子:

user_name为惟一索引,一旦有用户更新记录,不然为新增:

insert into users(user_name,user_qq) values('shenyi','123123')

 on DUPLICATE key  update user_updatetime=now(),user_qq=values(user_qq)

相关文章
相关标签/搜索