更新mysql中的唯一索引列

时间:2013-11-25 16:56:02

标签: mysql

我有一个唯一的索引列A,其中包含整数。我希望它增加1,在Oracle中我做:更新表集A = A + 1并且它有效。但在mySQL中,它给我以下错误: - MySQL数据库错误:密钥1的重复条目“2”。表中有三行,值分别为:1,2和3。我知道为什么它给了我这个错误。但是我该如何解决这个问题呢?感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用ORDER BY

执行此操作
update table 
set A=A+1
order by A desc

答案 1 :(得分:2)

您收到此错误是因为您的UPDATE TABLE SET A = A + 1,当将第一个ROW从1更新为2(1 + 1)时,它将与您的第二个ROW发生冲突,因为已经存在ID = 2的ROW。

你必须从最后一个ROW下降到第一个,你必须改变你的查询:

UPDATE TABLE SET ID = ID + 1 ORDER By ID DESC;

DESC子句会从表格的底部进行更新,因此在其路径中找不到任何重复的ID ...