SQL INSERT:跳过已存在的值

时间:2010-06-25 00:08:18

标签: mysql insert duplicates skip

我正在尝试将标签序列添加到列表主题中。 我不会创建唯一的tag列字段,因为我可能会有相同的副本,具体取决于用户语言,例如

table_houses
id          name                    location
1           Victoria's Home         New York
2           Black Mesa Lab          New Mexico
3           Tube                    London

table_tags
id          tag          id_subjects       language
1           garage       1                 it
2           garage       2                 fr
3           research     3                 en
4           lab          3                 en
5           laboratorio  3                 it
6           garage       1                 it <== how to avoid this duplicated INSERT like first row?

我已经看到一些人们使用INSERT IGNORE INTO语句的示例,但我发现它仅适用于唯一列,并且用于跳过重复错误。

是否存在某种方法只能跳过同一种语言的重复标记?

1 个答案:

答案 0 :(得分:5)

您需要在标记和语言上创建唯一键。

alter table table_tags add unique(tag, language);

然后你可以使用

insert ignore into ...