SQL / PHP重新填充数据库表的密钥ID#

时间:2011-05-13 12:32:43

标签: php mysql sql phpmyadmin

假设我在表中有80个条目,并且在填充表时将其设置为自动递增。然后我从各个位置删除了10条记录,现在我的条目看起来像:

7,8,9,11,14,16等......

我想按顺序重新编号,但不想手动手动执行。我如何能够根据字母顺序为他们创建新的密钥ID?

提前致谢!

2 个答案:

答案 0 :(得分:4)

您不想这样做,也不需要这样做。 它违反了数据库设计的许多原则,并导致不必要的结果(相信我的那个)。

如果您需要对某些内容进行顺序编号,请为此创建触发器,不要依赖主键进行此类操作。

答案 1 :(得分:0)

除了早期的答案之外,如果你只是在寻找一种方法来顺序编号你的行输出到一些视图时你不能用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:Fido 3:蒂莫西

虽然仍然保留了数据库索引的神圣性?