CakePHP:删除行后如何使自动增量值再次连续

Posted

技术标签:

【中文标题】CakePHP:删除行后如何使自动增量值再次连续【英文标题】:CakePHP: How to make auto-increment values contiguous again after deleting rows 【发布时间】:2013-08-08 19:50:10 【问题描述】:

我有一个博客,还有 4 个帖子。帖子的 ID 是:0、1、8 和 10。这是因为我删除了帖子 2-7 和帖子 9。有什么我可以“修复”这些帖子的 ID 以便在我的数据库表中它们从 1 到 3 并且是连续的?

【问题讨论】:

。你可以,但你绝对不应该。带有 AI 的字段可能是代理键,在这种情况下更改它们会破坏您的数据库架构。如果您的行需要连续编号,那么您一开始就不应该使用 AI。 我同意,最好依赖基于 slug 的 url,甚至可能带有日期 - 类似于 Wordpress 所做的。这对于浏览器中的可读性/自动完成和 SEO 也更好。 ID 本身并不重要(以及它是否连续)。 【参考方案1】:

您可以手动删除 mysql 列,然后使用相同的属性重新添加它。行将被重新排序。

或者,使用以下命令:

SET @count = 0;
UPDATE `users` SET `users`.`id` = @count:= @count + 1;

适当地替换usersid

您也可以使用以下方法重置自动递增的 id 列:

ALTER TABLE `users` AUTO_INCREMENT = 1;

其中 users 被替换为您的表的名称。

【讨论】:

【参考方案2】:

您可以手动更改它们的 id,然后设置 auto_increment 的值

alter table users auto_increment 5

【讨论】:

以上是关于CakePHP:删除行后如何使自动增量值再次连续的主要内容,如果未能解决你的问题,请参考以下文章

C#获取mysql自动增量值[重复]

如何使用 PDO 在 MySQL 中找到下一个自动增量值? [复制]

添加自定义自动增量值

如何在sql中获取下一个自动增量值

SQLite):删除行后自动更新两个表中的索引

如何使用 java 添加自动增量值?