Sev*_*evy 6 mysql sql unique primary-key sql-update
我的目标是将主键值+7增加到MySQL数据库中的表中.
Tablename = table,主键= id
例:
id name surname
1 John Doe
2 Mary McCain
3 Sam Smith
4 Roy Jenson
Run Code Online (Sandbox Code Playgroud)
我需要把它变成
id name surname
8 John Doe
9 Mary McCain
10 Sam Smith
11 Roy Jenson
Run Code Online (Sandbox Code Playgroud)
这样我就可以在现有的行之前再插入7行.
我试过了:
UPDATE table SET id = id + 7
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
Failed to execute SQL : SQL UPDATE table SET id = id + 7 failed : Duplicate entry '2' for key 1
Run Code Online (Sandbox Code Playgroud)
老实说,我真的不知道如何解决这个问题,因为我在该表中有超过122,000个条目,如果不是几个星期,手动逐个更新它们需要几天时间.
him*_*056 14
只需ORDER BY ID DESC在更新查询的末尾添加:
UPDATE table SET id = id + 7 ORDER BY ID DESC;
Run Code Online (Sandbox Code Playgroud)
尝试ORDER BY在给定的SQLFiddle中删除,您将得到相同的错误.
如果你试图减去那么你需要使用ASC而不是DESC在ORDER BY子句中.
UPDATE table SET id = id - 7 ORDER BY ID ASC;
Run Code Online (Sandbox Code Playgroud)