场景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)