mysql - 如何从 1 更新 id 集?

标签 mysql sql auto-increment

我有一个 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; 不是我的解决方案。

谢谢

最佳答案

当然有办法:

set @counter = 0;
update table_name
set id  = (@counter := @counter + 1);

编辑

为避免重复键的问题,您可以在将当前 ID 临时更改为负等价物之前运行类似这样的操作:

update table_name
set id  = 0 - id;

关于mysql - 如何从 1 更新 id 集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43137040/

相关文章:

php - Mysql 查询结果

java - 为什么在 "=+"子句中使用 "=*"和 "WHERE "?

mysql - 将自动增量大小设置为 200001 并偏移 10000

REST - PUT 请求如何处理自动递增的资源标识符

c# - Entity Framework Core 不尊重标识列

mysql - 插入后在mysql中触发

java - 根据 android studio 编译器,数据库表不存在

mysql - SQL如何在sql中添加if else条件

SQL-Server 将 "USE"与 INNER JOINS 和 "UNION"一起使用

mysql - 为什么我的查询没有显示错误,但也返回零行?