主键的MySQL复制重复条目

时间:2016-05-23 13:53:11

标签: mysql database-replication

def find_substring_locations(long, short)
  mpos = []
  re = Regexp.new(short)
  m = i = 0
  m = re.match( long, i ) { |k| j = k.begin(0); i = j + 1; mpos << j } while m
  return mpos
end

def plus_one(input)
  arr = []
  for i in input
    arr << (i += 1)
  end
  arr
end

main_string = gets.chomp
sub_string = gets.chomp
plus_one(find_substring_locations(main_string, sub_string))

许多人建议使用slave-skip-error选项等。但这将完全避免查询。你如何实际继续提出错误的查询?此外,我找不到一个好的答案,为什么这个实际发生和数字&#34; 914166&#34;表示?有人可以解释一下吗?

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

  

数字(914166)必须是以整数保存的ID   ID列,它是唯一键或其中的一部分。

您的查询显示“id = 2888555”,这可能是MySQL所指的列。

检查ID为914166的行的值,并将其与您要为id 2888555设置的值进行比较。 您只需要查找属于主键的列。 这些列中的值将相同,因此MySQL会抛出错误。

MySQL基本上是在说:

  

你的查询毫无意义!您正在尝试更新行,但您尝试更新的列是   主键的一部分,并且已经有一行具有相同的行   值。请更正您的查询,以免违反主键约束!

但是,只要所有行具有不同的ID,就不会出现问题。发布表格结构和索引可以在此时对您的问题进行更具体的分析。

答案 1 :(得分:0)

触发的表会导致重复输入错误。感谢您的建议。