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