我有一个包含三个字段的表:
见图: enter image description here
整数字段的值不必是唯一的。
我的问题: 我从API中提取数据并将字符串和第三个字段(整数)插入表中。目前我正在截断表并再次插入以避免重复。我如何做到这一点,如果字符串存在,它只更新第三个字段(整数),如果它不存在,它将正常插入行。
我知道ON DUPLICATE KEY技术,但我的'key'是主键,我想检查重复的字符串字段。
答案 0 :(得分:4)
如果字符串字段应该是唯一的,则将其声明为唯一:
alter table add constraint unq_table_string unique (string);
然后,on duplicate key
会在违反此约束时找到匹配项。
答案 1 :(得分:0)
您可以尝试以下查询 -
ALTER IGNORE TABLE `your_table`
ADD UNIQUE INDEX (`hash_name` );
这将为您的表添加唯一索引并删除所有重复的hash_name,并确保将来不会插入重复的hash_name。