我正在尝试更改表中每一行的 id
(主键,AUTO_INCREMENT):
UPDATE foo SET id = id + 4;
但它给了我:
Duplicate row for primary key value 5
或者类似的东西。
我该如何解决这个问题?是否有查询以倒序更新行,这样就不会发生这种情况?
谢谢。
最佳答案
这是在单个 SQL 语句中执行此操作的解决方案。
UPDATE foo F
INNER JOIN (SELECT id FROM foo ORDER BY id DESC) F2
ON F.id = F2.id
SET F.id = F.id + 4
关于mysql - 如何按特定顺序更新 MySQL 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22033889/