場景
譬如管理員後臺
1、編輯在後臺手工添加新聞
2、或者用爬蟲抓到新聞後插入
由於一些不可描述的原因。我們可能需要會插入相同的新聞
我們利用news_code字段。
在程序(PHP ,java)拼湊SQL語句時,執行一個md5 過程,
讓news_code值=md5(標題的內容+摘要的內容).我們使用sql來表示
insert into news(news_title,news_abstract,news_code)
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)