-1

我有一个 id 列,它是整数和自动递增类型。

问题是当我删除一行时,数字的连续性就会中断。

+----------------------+----+    
| name                 | id |    
+----------------------+----+    
| mashable             |  1 |    
| Behance              |  2 |    
| Techcrunch           |  3 |    
| flipkart             |  4 |   
+----------------------+----+

例如,如果我删除带有 的行id=2,那么我在 id 中的输出将是

+----------------------+----+
| name                 | id |
+----------------------+----+
| mashable             |  1 |
| Techcrunch           |  3 |
| flipkart             |  4 |
+----------------------+----+

但我希望它像:

+----------------------+----+
| name                 | id |
+----------------------+----+
| mashable             |  1 |
| Techcrunch           |  2 |
| flipkart             |  3 |
+----------------------+----+

怎么做 ??

4

1 回答 1

2

为了直接回答您的问题,以下是您如何修复顺序数字字段中的这些空白:Fixing gaps in mysql table row id after we delete some of them

但是,让我们在这里小心一点。

假设id是您的主键。ID 通常是对象的引用点,因为自动生成的 ID 是唯一的。称之为约定。

这意味着如果您的代码的任何部分依赖于该id列,您的应用程序将会中断。

如果您要这样做,请使用其他字段作为主要参考。也许是一个独特的name领域或类似的东西。

如果 ID 不是您的主键,那么您可能应该选择另一个名称作为开头。无论如何,在这种情况下,您破坏任何东西的机会要小得多。

请注意,我说的是更小,但不是零。我们不了解您的应用程序,因此您的代码可能id用于某些重要的事情,这会给您带来麻烦。

于 2013-09-21T06:41:54.887 回答