mysql插入除键之外的唯一行

时间:2012-10-18 19:25:11

标签: mysql sql

| id |  -> primary key, auto_increment
| v1 |
| v2 |

我想确保插入时没有重复的(v1,v2)对。是否可以通过 SQL 语句?目前我先做一个选择,如果没有结果,我继续插入。

我想知道是否有更好的解决方案。

2 个答案:

答案 0 :(得分:2)

如果您不介意从请求中返回错误(您可以在代码中处理它,或者如其他地方所述,请使用INSERT IGNORE插入以完全抑制错误。),您可以放置​​一个独特的v1,v2上的复合索引。

ALTER TABLE tablename
      ADD UNIQUE INDEX unique_pair(v1,v2);

答案 1 :(得分:1)

我相信你做这件事的方式实际上是首选方法。但是,如果您对列有适当的约束,则可以尝试使用INSERT IGNORE