更改多个MySQL主键的值

时间:2013-07-30 00:45:12

标签: mysql phpmyadmin

我有一个MySQL表,其中包含大约2,600个现有行,每个行都有自己的主键。

这些主键有很多随机值。我想用一组从零开始的新数字替换它们。请记住,我想更改现有行的主键值。

这可以在phpMyAdmin或MySQL中完成吗?

2 个答案:

答案 0 :(得分:2)

安全的做法是删除现有的列和主键并分配新列。

alter table t drop primary key, add newkey int primary key auto_increment;

这将添加一个新的自动递增的主键。

您可以在SQL Fiddle找到此信息。

答案 1 :(得分:2)

您可以使用user defined variable

执行此操作
set @i := -1; -- one less than the first id value you want
update mytable set
id = (@i := @i + 1)
order by id;

order by可确保密钥保持相同的顺序,并防止ID在更新中发生冲突。

在SQLFiddle中查看live demo