假设我在一个表中有 80 个条目,并且我在填充表时将其设置为自动递增。然后,我从各个位置删除了 10 条记录,现在我有如下所示的条目:
7、8、9、11、14、16等
我想按顺序重新编号它们,但不想手动手动完成。如何根据字母顺序为它们创建新的密钥 ID#?
提前感谢!
你不想
这样做,也不需要那样做。它违反了数据库设计的许多原则并导致不需要的结果(相信我)。
如果您需要对某些内容进行顺序编号,请为此创建一个触发器,不要依赖主键来实现此类目的。
如果您只是在寻找一种在输出到某个视图时按顺序对行进行编号的方法,那么前面的答案就不能用 php 动态地做到这一点吗?
table: dogs
id | name
---------
1 | Rover
4 | Fido
7 | Timothy
然后(针对您正在运行的任何循环进行了修改
<?
$Dogs = mysql_fetch_array(your sql query);
foreach ($Dogs as $cnt => $Dog)
{
echo ($cnt+1).": ".$Dog['name']."<br />";
}
?>
将输出:1: 漫游车2:菲多3: 提摩太
同时仍然保持数据库索引的神圣性?