Php 如何在mysql中保持连续的id号行计数
我有一个id列,它是整数和自动递增类型 问题是,每当我删除一行时,数字的连续性就会中断Php 如何在mysql中保持连续的id号行计数,php,mysql,Php,Mysql,我有一个id列,它是整数和自动递增类型 问题是,每当我删除一行时,数字的连续性就会中断 +----------------------+----+ | name | id | +----------------------+----+ | mashable | 1 | | Behance | 2 | | Techcrunch | 3 | |
+----------------------+----+
| 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 |
+----------------------+----+
怎么做 要直接回答您的问题,下面是如何修复顺序数字字段中的空白: 但是让我们在这里小心一会儿 让我们假设id是您的主键。ID通常是对象的参考点,因为自动生成的ID是唯一的。称之为惯例 这意味着,如果代码的任何部分依赖于id列,则应用程序将中断 如果需要这样做,那么使用其他一些字段作为主要参考。可能是唯一的名称字段或类似的内容 若ID不是您的主键,那个么您可能应该为它选择另一个名称作为开始。无论如何,在这种情况下,你打破任何东西的机会要小得多
注意我说的更小,但不是零。我们不了解您的应用程序,因此您的代码可能会将id用于重要的内容,这将给您带来麻烦。第一个问题是:为什么需要它?你是想让它看起来漂亮,还是有很强的商业理由?MySQL整数类型可以容纳足够多的值:ID是您的主键吗?如果是这样,那么不要这样做。如果不是主键,那么如何??为什么不呢@他现在没有任何具体的工作,但我确实想知道@biziclop@Aayush:因为担心这样的事情生命短暂,所以不值得担心。将is作为非主键字段,让我们假设它是数字字段而不是id,它有什么区别?这就是我要问的,如果我的字段名是number,而现在它不是primary,那么我如何才能使它以这种方式工作?