MySQL:使2个值唯一

时间:2014-05-24 04:33:53

标签: mysql sql insert 2d coordinates

我试图让2个值唯一,就像我有值(5,10)一样,不能再添加相同的值。

我目前正在从表中选择值x和y,如果它们不存在则检查它们是否一起存在于表中,换句话说

"从x =?的位置选择*?和y =?"

如果没有返回结果,它将继续插入值。

1 个答案:

答案 0 :(得分:1)

这通常是通过在两个组合的列上创建唯一索引来实现的(多列索引)。

然后,MySQL将阻止您插入重复项。您可以继续尝试插入记录,如果出现重复键错误,则表示它已存在。

或者,处理它的另一种方法是使用INSERT IGNORE,以便在尝试插入重复行时不会发生错误。但是,它不会插入,因此您只需检查受影响的ROW_COUNT()以查看插入是否成功。

使用唯一索引并在插入上捕获失败比选择然后尝试插入更有效,因为在您插入的情况下,MySQL只需执行一次搜索,而不是两次。