我试图使两个值是唯一的,比如如果我有相同的值(5,10),那么相同的值就不能再被添加了。
我目前正在从表中选择值x和y,检查它们是否同时存在于表中,如果它们不存在,就插入它们。
“从x=?和y=的位置选择*”
如果没有返回结果,它将继续插入值。
发布于 2014-05-24 05:10:26
这通常是通过在这两列上创建唯一的索引来实现的(多列索引)。
然后,MySQL将阻止您插入重复项。您可以继续并尝试插入记录,如果您得到一个重复的键错误,您知道它已经存在。
或者,另一种处理方法是使用INSERT IGNORE,以便在尝试插入重复行时不会发生错误。但是,它不会插入,所以您只需检查受影响的ROW_COUNT(),看看插入是否成功。
使用唯一的索引并捕捉插入上的失败比选择然后尝试插入更有性能,因为在插入的情况下,MySQL只需要执行一次搜索,而不是两次。
https://stackoverflow.com/questions/23841349
复制相似问题