如果值存在UPDATE,则INSERT *具有2个非唯一

时间:2014-04-26 14:59:36

标签: php mysql

我已经阅读了类似问题的其他答案,但无法理解如何解决我的问题。

我正在处理的表包含"jobs"的元键,元键和id of the "job"重复多次。

表格结构:

id | job_id | meta_name | meta_content

id是唯一的,job_id 将重复3-10次,其中meta_namemeta_content值不同,meta_name必须每job_id只存在一次,meta_content不应该依赖,因为它会存储从文本到电子邮件到电话号码的任何内容。

我尝试使用ON DUPLICATE KEY UPDATE失败并只创建新行,从而产生多个job_id+meta_name组合。

任何人都可以帮助构建查询吗?

2 个答案:

答案 0 :(得分:1)

  

meta_name每个job_id只能存在一次

然后你应该在这两列上创建一个组合的UNIQUE索引。

有了这个,INSERT … ON DUPLICATE KEY UPDATE将按照预期的方式用于此类数据组合。

答案 1 :(得分:0)

您必须将两个唯一键列与

组合在一起

UNIQUE KEY keyname (job_id,meta_name)