<分区>
我有一个包含不同帖子的博客。假设我有 10 个帖子。当我选择删除带有 DELETE FROM table WHERE id = 10
的最新帖子时,它会删除它。
然后,我发布的下一篇文章获得 ID 11。
所以我的数据库看起来像:
ID | post
11 | foo
9 | bar
但是我删除的数字 10 已经不存在了。我怎样才能使我发布的下一篇文章获得 ID 10?
ID
列是自动递增的。
标签 php mysql sql sql-delete
<分区>
我有一个包含不同帖子的博客。假设我有 10 个帖子。当我选择删除带有 DELETE FROM table WHERE id = 10
的最新帖子时,它会删除它。
然后,我发布的下一篇文章获得 ID 11。
所以我的数据库看起来像:
ID | post
11 | foo
9 | bar
但是我删除的数字 10 已经不存在了。我怎样才能使我发布的下一篇文章获得 ID 10?
ID
列是自动递增的。
最佳答案
我认为最好的答案是你不。
这是关系数据库的预期(且正确)行为。
假设您有评论通过帖子 ID 与您的博客帖子相关。如果您删除帖子并保留评论,将另一个帖子的 ID 更改为旧 ID 会导致评论与错误的帖子关联。
这只是一个简单的例子。这种类型的数据关系错误有可能在数据库中造成严重破坏。 ID 以这种方式自动递增以保证唯一性。
关于php - 在 MySQL 中删除后自动增量不正确 ID 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31328906/
相关文章:
java - 查询在 SQL*Plus 上运行但不在 jdbc 程序中运行
php - 网络 MVC : how to structure the Model layer?
sql - 在执行查询之前,如何从 Laravel 的查询构建器中获取原始查询字符串?
php - 为什么 JSON 只为我的查询返回 1 个图像输出?
mysql - 如何在 phpmyadmin 中获取表结构作为 SQL 查询
PHP - 基于 Off Factor 对数组进行排序::usort?
php - 如何在 Symfony2 中将 json 渲染成 Twig