调整MySQL ID列+1

9

我有大约1000行数据,希望将所有行的ID号码加1。我考虑使用以下方法:

UPDATE table

SET id = id+1

我在phpMyAdmin中尝试了这个方法,但是出现了这个错误信息:“主键冲突,重复键值”。

这很好理解,但是怎样可以避免这种情况呢?

3个回答

25

把它倒序排序难度不是更小吗?

update table set id = id +1 order by id desc

这对我有用...


4
+1酷,我不知道您可以在更新语句中使用order by。 - bumperbox
不知道我可以倒序排序,这很有意义...让我试试。 - lee
更新表格,设置 id = id +1。无论您是否添加 order by,这都可以正常工作。 - Jinesh Jain

0

使用足够大的数字,以避免创建重复项。

update table set id = id + 1000001;
update table set id = id - 1000000;

请记住,如果您正在使用自增键,则会增加它。


0

按照以下步骤:

  1. 创建一个临时表
  2. 将所有数据复制到此临时表中,带有所需的 ID
  3. 删除原始表
  4. 最后将临时表重命名为原始表。

就这样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接