删除记录时的PRIMARY KEY顺序(使用AUTO_INCREMENT)

时间:2016-07-24 16:17:37

标签: php mysql sql

我已经看到here当从表中删除记录时,MySQL不会使用AUTO_INCREMENT重新索引PRIMARY KEY。也就是说,如果我有

1     John Connor     12/05/1973
2     Peter Brown     04/03/1979
.....
50    Mike Kennedy    01/12/1975

我删除从ID = 3开始到ID = 50结尾的记录,然后插入以下内容(以完全相同的顺序,一个接一个):

      Mark Carney     09/02/1970
      Jimmy Johnson   14/09/1968
      Roman Harley    19/05/1972

我最终会:

1     John Connor     12/05/1973
2     Peter Brown     04/03/1979
53    Roman Harley    19/05/1972
52    Jimmy Johnson   14/09/1968
51    Mark Carney     09/02/1970

当插入更多记录时,列ID会按预期增加(即54, 55, 56, ...),但记录的顺序会反转。在上面的示例中,53位于52上方,52位于51之上。结果不应该是

1     John Connor     12/05/1973
2     Peter Brown     04/03/1979
51    Mark Carney     09/02/1970
52    Jimmy Johnson   14/09/1968
53    Roman Harley    19/05/1972

正如我们的常识告诉我们的那样?为什么较新的记录放在较旧的记录之上?如果这与“表格单元格”(一旦从ID = 3ID = 50的记录被删除后腾空而来),那么为什么不51取代3 } {},52 4的地方和53 5的地方?有没有办法改变这种行为?

P.S。我正在使用MySQL存储数据,使用PHP查询以及使用phpMyAdmin管理数据库。表格中的PK设置如下: ID INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY

提前谢谢!

0 个答案:

没有答案