更新查询MySQL上的重复键输入

时间:2013-03-22 21:12:07

标签: mysql duplicates

UPDATE Table1, Table2
SET Table1.Col1 = 1, Table1.Col2 = 2, Table2.Col1 = 3 
WHERE Table1.PKey = Table2.PKey AND Table1.PKey = 199

导致重复键输入

#1062 - Duplicate entry '199-1' for key 'PRIMARY'

请帮助我一直在挠头。我希望这个查询是最佳和快速的,因为它在循环中使用,循环遍历大量行并为每个查询更新。不想分成2个查询,从那时起每行将有2个单独的查询调用。

2 个答案:

答案 0 :(得分:1)

您的上述查询应该有效 - 参考:

https://stackoverflow.com/a/9417254/1073631

猜测您正在尝试使用已存在于同一表中另一行中的值更新主键(唯一)列 - 因此出现重复输入错误。

答案 1 :(得分:1)

我认为你的Table1的主键是PKey和Col1,即

CREATE TABLE `Table1`
...
PRIMARY KEY (`PKey`,`Col1`)

有关重复条目'199-1'的错误指向该方向。