mysql 有重複數據不插入或更新的處理方法


場景

譬如管理員後臺

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)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章