有没有办法让主键具有增加它但填补空白的功能?假设我有下表:
____________________
| ID | Value |
| 1 | A |
| 2 | B |
| 3 | C |
^^^^^^^^^^^^^^^^^^^^^
请注意,该值只是一个示例,订单与问题无关。
删除ID
为2的行后(表格如下所示):
____________________
| ID | Value |
| 1 | A |
| 3 | C |
^^^^^^^^^^^^^^^^^^^^^
我添加另一行,使用常规自动增量功能,它将如下所示:
____________________
| ID | Value |
| 1 | A |
| 3 | C |
| 4 | D |
^^^^^^^^^^^^^^^^^^^^^
正如所料。
我想要的输出是:
____________________
| ID | Value |
| 1 | A |
| 2 | D |
| 3 | C |
^^^^^^^^^^^^^^^^^^^^^
用新行填充间隙。还要注意,在内存中,它看起来可能会有所不同。但关键是主键会填补空白。
当拥有主键(例如)1, 2, 3, 6, 7, 10, 11
时,应首先填写4
,然后5
,8
等等......当表格时是空的(即使之前有一百万行),它应该从1
开始。
我如何做到这一点?有没有类似的内置功能?我可以实施吗?
编辑:如果不可能,为什么不呢?
答案 0 :(得分:3)
不,你不想这样做,正如juergen-d所说。它不太可能做你认为它正在做的事情,并且它会在多用户环境中做得更少。 在多用户环境中,即使没有删除,也可能只是从中止的插入中获得空洞。