我有一个包含整数的唯一索引列A。我想让它每次加1,在Oracle中,我这样做:update table set A=A+1,它可以正常工作。但是在MySQL中,它会给我以下错误:MySQL数据库错误:键1上存在重复条目“2”。我的表中有三行值分别为1、2和3。我知道为什么会出现这个错误。但是我该如何解决这个问题呢?谢谢。
我有一个包含整数的唯一索引列A。我想让它每次加1,在Oracle中,我这样做:update table set A=A+1,它可以正常工作。但是在MySQL中,它会给我以下错误:MySQL数据库错误:键1上存在重复条目“2”。我的表中有三行值分别为1、2和3。我知道为什么会出现这个错误。但是我该如何解决这个问题呢?谢谢。
ORDER BY
来实现此操作:update table
set A=A+1
order by A desc
UPDATE TABLE SET A = A + 1
更新第一行(从1变成2),这将与第二行发生冲突,因为已经有一个ID = 2的行存在。UPDATE TABLE SET ID = ID + 1 ORDER By ID DESC;
DESC
子句将使更新从表格底部开始,因此它不会在其路径中找到任何重复的ID...