mysql - 如何更正已删除行的自动增量字段(1,2,3,4,5 - 现在是 1,3,5),但我希望它是 1,2,3

标签 mysql sql

我在数据库中有一个使用“自动增量”主键创建的表。直到现在我才返回并删除了一些行。

问题是,我希望表格为 1->X,编号列中没有任何孔(换句话说,它应该是 1,2,3,4,5,6,7,8,9 ,10 - 但现在更像是 1,2,3,7,8,10。

有没有办法可以通过 mysql 重新设置该列的值以正确递增???

最佳答案

使用用户定义的变量(该变量在每行期间都会递增)和 order by 来防止在更新过程中出现重复的 id:

SET @x := 0;
UPDATE mytable SET
id = (@x := @x + 1)
ORDER BY id;

查看SQLFiddle

关于mysql - 如何更正已删除行的自动增量字段(1,2,3,4,5 - 现在是 1,3,5),但我希望它是 1,2,3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20624599/

相关文章:

mysql - 如何确定metricbeat mysql的理想期限?

php - Mysql,如何在选择数据时自定义时间戳

php - 每次刷新页面时,PHP表单都会在数据库中添加空白行

python - Django 中的同步 AJAX 请求和 MySQL 数据库数据可见性

php - CakePHP 计算某个父级中具有 ID 的所有项目

mysql - 在第三个字段上使用 2 columns.grouping 进行过滤的好方法是什么

php - 需要在 Bootstrap 中使用模式编辑表格的一行

MySql - 按结果获取用户排名

php - 如何将请求重定向到 apache 服务器上的 'www' 子域

mysql - 多少查询太多了?