所以我正在做一个程序,我可以使,保存和删除数据库中的项目,但我希望现有项目的id的跟进。例如,我有以下项目:
| Id | Item name |
----------------------
| 1 | item 1
| 2 | item 2
| 3 | item 3
当我删除第2项时,我希望它是:
| Id | Item name |
----------------------
| 1 | item 1
| 2 | item 3
而不是:
| Id | Item name |
----------------------
| 1 | item 1
| 3 | item 3
这是我的表格:
2条答案
按热度按时间mwg9r5ms1#
但我希望现有物品的id能互相追踪。
所以不要使用身份。很简单。身份不遵循你想要的规则,但是微软已经编程的规则,它说“一旦被给予,就不会被重用”。句号。
rtfm会告诉你在那里没有再利用的保证。你必须坐下来制定一个程序来获得类似的身份——如果你暴露了身份,你可能会得到商业上的所有副作用。以及性能影响。
注解:我使用id作为他们在列表中所处位置的参考。
那是一种虐待。如果你想要一个订单,我会有另一个字段,所以你可以重新排序。无论如何,你都需要一个订单(除非你想遵循另一个最坏的做法,暗示pk订单是保持的-这将起到绝对好的作用,直到有一天你的订单发生变化,然后来到这里,你会被认为没有保证的订单,除非你要求一个)。
yzckvree2#
主键中的数值通常不是这样使用的。如果需要记录的数字顺序,可以在检索数据时使用此查询
然后让主键自己自动递增,并在唯一性中完成它的工作。