首页 > 解决方案 > Mysql - 如果整个相同的行已经存在,则在插入新行时忽略警告

问题描述

这是我在 stackoverflow 中的第一个问题,我不是以英语为母语的人。如果我问得不好,请多多包涵。

假设我有一个表,它_id是一个主键。

| _id | value1 | value2 |
|-----|--------|--------|
|   1 |  apple | banana |
|   2 | orange |  melon |

我希望:

mysql中是否有任何简洁的语句,以便我可以做烂工作?

标签: mysqlsql

解决方案


您似乎想要一个唯一的索引_id

create unique index unq_table_id on table(_id);

然后,您将无法插入具有相同_id. 如果您还希望这些索引是唯一的value1,您可以创建唯一索引。value2

该行为与您指定的不完全一致。如果您尝试插入具有现有值的任何_id行- 无论其他列中的值如何 - 都会发生错误。如果您愿意,可以使用insert ignore或绕过错误。on duplicate key update


推荐阅读