SQL重新生成ID以保持自动增量

时间:2011-08-09 08:02:42

标签: mysql sql

我正在寻找纯SQL(或MySQL)语法,我不知道是否可能我会创建一个PHP脚本但是......

我有一个带有一个主键的基本表:ID和somes列。我没有依赖其他表格。

目前我的行看起来像:

ID   Column1   Column2  
22   test      test
26   test2     test2
33   test3     test3
...

现在我想重新生成我的所有ID以保持秩序。示例:我从22开始

ID   Column1   Column2  
22   test      test
23   test2     test2
24   test3     test3
...

2 个答案:

答案 0 :(得分:7)

去看看那里:Reorder / reset auto increment primary key

但正如那里所说,它将破坏你已经拥有的关系。但既然你没有,那就没关系

ALTER TABLE `table` DROP `id`;
ALTER TABLE `table` AUTO_INCREMENT = 1;
ALTER TABLE `table` ADD `id` int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;

答案 1 :(得分:1)

最简单的方法是创建一个包含所需auto_increment列的新表,然后

INSERT INTO myNewTable (column1, column2)
SELECT column1, column2
FROM myOldTable
ORDER BY ID