我有一个有3000个条目的表格。 我随机选择25个转移到另一个表。 完成此操作后,我希望原始表中的ID(被分配AUTO_INCREMENT并且是主键)顺序排列,以便我可以执行下一次迭代。 我该怎么做?删除几条记录后如何在MySQL中重新排序AUTO_INCREMENT ID?
-1
A
回答
0
我们无法将auto_increment值更改为除当前最大值之外的其他值.Auto_Increment是一个继续递增的计数器,其值用于定义它的列。
将其更改为仅高于当前最大值的值的唯一方法是手动将AUTO_INCREMENT计数器的值更改为max(value)+1。
所以我想在这里,你必须在删除25条记录后按现有Id升序排列记录,并根据增量变量手动设置每条记录的id值,最后将AUTO_INCREMENT计数值设置为变量的值在最后+1。
样品:
ALTER表T SET AUTO_INCREMENT = SOME_VALUE;
虽然建议单独离开AUTO_INCREMENT并且避免所有这些,只是为了使ID看起来很棒而且没有其他可能的原因。
+1
这是解决方案的1%。另外99%的人正在追踪所有对这些值的引用并对其进行调整,并清除由此产生的混乱情况。 – tadman
相关问题
- 1. 如何在删除行后重新排序表序号否
- 2. 如何在删除记录/数据后重新加载dataTable?
- 3. 笨排序ID后删除
- 4. Mysql - 删除重复记录
- 5. mysql自动增量 - 记录删除后重新分配
- 6. 如何删除重复记录\观察没有排序在SAS?
- 7. 如何在插入新记录后重新排序记录,VBA,MS ACCESS
- 8. Android的SQLite的 - 如何更新记录ID号删除记录
- 9. 几分钟后自动删除记录
- 10. 删除记录后如何对列重新编号
- 11. MYSQL将多条记录中的记录除外最新记录
- 12. ,如何排除删除的记录
- 13. 如何在记录删除后从最后一次停止的位置创建id auto_increment?
- 14. 删除行后使用PHP重新排序mysql表?
- 15. 在Mysql中禁用重新使用已删除的记录
- 16. 停止MySQL重用AUTO_INCREMENT ID
- 17. 如何一次删除多条记录?
- 18. 如何删除MS SQL 2005中最新的20,000条记录?
- 19. 在轨道中删除多条记录
- 20. MySQL记录重复数据删除
- 21. 如何使用ID删除记录?
- 22. 如何删除mysql表中的重复记录
- 23. 如何删除mySQL重复条目
- 24. 如何从MySQL表中删除重复记录?
- 25. MySQL CrossTab并删除重复记录
- 26. 如何删除使用PDO插入到MySQL表中的最后一条记录?
- 27. 在MySQL中删除两个表中的ID匹配的记录
- 28. 更新记录,然后删除
- 29. 如何删除最后一个记录
- 30. SELECT然后立即删除mysql记录
因此原始表格中的条目在移动之后被删除? –
不要。这个问题可能每天都会被问到。答案是“不要这样做”。作为替代方法,您可以*创建一个新表,并使用新的PK自动递增并将所有剩余记录移至该表。但为什么*?什么让你认为主键*需要*始终是完美的顺序? (提示:它不) – David
你不应该。主键可能是另一个表中的外键,也需要进行更改。如果你认为你需要这样做,那么你做错了什么。 – AbraCadaver