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)

相關文章
相關標籤/搜索