2016-11-17 94 views
1

我有三個字段的表:MySQL |如果字段存在插件的更新記錄插入

  • 自動遞增整數(主鍵)
  • 字符串,它應該是唯一的
  • 整數包含值不唯一

見圖片瀏覽: enter image description here

爲INT值埃格爾領域不需要是唯一的。

我的問題: 我從API中提取數據並將字符串和第三個字段(整數)插入表中。此刻,我正在截斷表格並再次插入以避免重複。我該如何做,所以如果字符串是存在的,它只是更新第三個字段(整數),如果它不存在,它將按正常插入行。

我知道ON DUPLICATE KEY技術,但我的'鑰匙'是主鍵,它是我想檢查重複的字符串字段。

回答

4

如果字符串字段應該是唯一的,那麼它聲明爲唯一的:

alter table add constraint unq_table_string unique (string); 

然後,on duplicate key會找到一個匹配時,這個限制也被侵犯。

0

你可以試試下面的查詢 -

ALTER IGNORE TABLE `your_table` 
ADD UNIQUE INDEX (`hash_name`); 

這將添加唯一索引到你的表並刪除所有重複hash_name並確保被插入在未來沒有重複hash_name。