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