php - 删除行时如何始终序列化mysql中的id行

标签 php mysql

当我删除数据库中的行时,ID(自动递增)现在不再是连续的。假设我有 1 2 3 4 5 6 7 8 9 并且我删除了 3 4 5 行。删除后我希望 ID 显示为 1 2 3 4 5 6 而不是 1 2 6 7 8 9

请问我该怎么做?

更新

我正在使用此代码显示数据库生成的注释的序列号...(在 while 循环内)

     <?php  
            $serial = 0; 
            $serial++; 
            echo"<div class='commentserial'>
                  <div id='$serial'></div> 
                    <a href='#$serial'>$serial</a> 
                  </diV>";
      ?>

现在我在评论显示上有了一个分页脚本,当我单击第二页而不是从 1 到 $per_page 编号的序列号时。

所以我觉得如果我使用数据库 ID 那么在后续分页页面上编号将不会从 1 开始。

最佳答案

您想做的不是好的做法。主键中的漏洞不应该留在那里。想象一下,例如在另一个表中引用了主表中的 ID 25。如果主表发生变化,引用会突然指向不同的记录。

网络链接也是如此。有一个像

这样的 URL
details.html?id=255 

突然指向不同的记录会非常糟糕。

如果您想要一个完美的序列 ID,最好在应用程序级别创建它。

关于php - 删除行时如何始终序列化mysql中的id行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14832955/

相关文章:

php - Node.js 作为程序运行 vs php

c# - 如何使用 MySQL 数据填充包含每个类项的类列表的类列表?

mysql - MySQL的 "IF EXISTS"的用法

mysql - 使用 mySQL 为每个类别选择两个不同的随机条目

php - 如何生成/创建我自己的 PHP CLI 命令

php - 如何在 PHP 中表示乘法

php - php 中的 oop 和 pdo 有问题

javascript - KnockoutJS + Symfony2 + Twig 集合表单添加和删除项目

mysql - 将 CSV 导出到 MySQL

mysql - 如何让 MySQL 从包含 CSV 数据作为多列的 TEXT 列加载数据?