SQL INSERT:跳过已存在的值

vit*_*tto 1 mysql insert skip duplicates

我正在尝试将标签序列添加到列表主题中.我不会创建唯一的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?
Run Code Online (Sandbox Code Playgroud)

我已经看到一些人们使用INSERT IGNORE INTO语句的例子,但我已经知道它仅适用于唯一的列,它用于跳过重复的错误.

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

Phi*_*ach 5

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

alter table table_tags add unique(tag, language);
Run Code Online (Sandbox Code Playgroud)

然后你可以使用

insert ignore into ...
Run Code Online (Sandbox Code Playgroud)