我试图让2个值唯一,就像我有值(5,10)一样,不能再添加相同的值。
我目前正在从表中选择值x和y,如果它们不存在则检查它们是否一起存在于表中,换句话说
"从x =?的位置选择*?和y =?"
如果没有返回结果,它将继续插入值。
答案 0 :(得分:1)
这通常是通过在两个组合的列上创建唯一索引来实现的(多列索引)。
然后,MySQL将阻止您插入重复项。您可以继续尝试插入记录,如果出现重复键错误,则表示它已存在。
或者,处理它的另一种方法是使用INSERT IGNORE
,以便在尝试插入重复行时不会发生错误。但是,它不会插入,因此您只需检查受影响的ROW_COUNT()
以查看插入是否成功。
使用唯一索引并在插入上捕获失败比选择然后尝试插入更有效,因为在您插入的情况下,MySQL只需执行一次搜索,而不是两次。