2016-11-17 115 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。

相关问题