如果数据不存在(不包括主键),则插入MySQL

时间:2015-12-28 19:49:57

标签: mysql sql

我正在尝试仅在表中已存在数据时才执行sql插入。我有一个语言表,它有一个自动递增的主id字段和一个字符串描述字段来捕获语言的名称(例如英语)。我希望只有在描述字段不存在时才能插入数据库。主要ID并不重要。所以我只想插入表中,如果"英语"表中没有值。另外,我只给出了描述,以检查它是否已经在数据库中(我提到这是因为ON DUPLICATE KEY要求所有字段都匹配,而我没有id。)

我搜索并尝试了很多查询,但没有任何查询产生正确的结果。任何想法都会有所帮助。感谢。

2 个答案:

答案 0 :(得分:0)

您只需在描述字段中添加UNIQUE约束。

然后在代码中使用“INSERT ... ON DUPLICATE KEY UPDATE”。请参阅此link

答案 1 :(得分:0)

如果您需要更新具有UNIQUE键冲突的行 - 您应该使用“meda”答案。 如果您只需要插入没有重复的行,您还应该使用查询添加UNIQUE约束:

INSERT IGNORE INTO表SET ....

此查询将插入没有冲突的行,并忽略其他没有任何mysql错误的行