我有一个id coloumn,它是整数和自动递增的类型。
问题是,当我删除一行时,数字的连续性会中断。
+----------------------+----+
| 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 |
+----------------------+----+
怎么做?
答案 0 :(得分:2)
要直接回答您的问题,请按以下步骤修复连续数字字段中的差距:Fixing gaps in mysql table row id after we delete some of them
但是我们暂时要小心。
我们假设id
是您的主键。 ID通常是对象的引用点,因为自动生成的ID是唯一的。称之为惯例。
这意味着,如果 ANY 部分代码取决于id
列,那么您的应用程序将会中断。
如果需要执行此操作,请使用其他字段作为主要参考。也许是一个独特的name
字段或类似的东西。
如果ID不是您的主键,那么您可能应该首先选择其他名称。无论如何,在这种情况下,你破坏任何东西的机会要小得多。
请注意,我说的更小,但不是零。我们不知道您的应用程序,因此您的代码可能会使用id
来表示重要的事情,这对您来说意味着麻烦。