小编典典

如何从1更新ID集?

sql

我有一个id主键和自动增量。是否有任何查询来更新我现有的id并让我id从1和下一个ID 2开始,依此类推。

例如

id  name
3   ABC
5   XYZ
9   PQR

注意: id已经是主要和自动增量,我不想截断我的id。

如果可能的话我想得到

id  name
1   ABC
2   XYZ
3   PQR

ALTER TABLE table AUTO_INCREMENT = 1; 不是我的解决方案。

谢谢


阅读 199

收藏
2021-03-17

共1个答案

小编典典

是否有任何查询来更新我的现有ID,并使我的ID从1开始,下一个ID为2,依此类推

您可以做的就是将表的内容转移到另一个表。重置自动增量计数器,将数据重新插入原始表中,但让MySQL分配主键。

假设您的表名是mytableYou,您可以这样做:

CREATE TABLE mytable_tmp select * from mytable;
TRUNCATE TABLE mytable;
ALTER TABLE mytable AUTO_INCREMENT = 1;
INSERT INTO mytable(name) SELECT name FROM mytable_tmp ORDER BY id;
DROP TABLE mytable_tmp;
2021-03-17