gpt4 book ai didi

mysql - 我怎样才能让我的标识列连续而没有间隙?

转载 作者:行者123 更新时间:2023-11-29 04:53:44 24 4
gpt4 key购买 nike

我有一个包含 M +2 条记录的数据库,问题是:我不得不删除大约 10 000 条,现在我遇到了这个问题,ID 会丢失,例如

ID: 100
ID: 102
ID: 103
...

如何组织这个?也就是说,将所有后续ID替换为没有“漏洞”的东西?请记住,我有超过 200 万条记录(每天 15,000 条以上),手动操作是不可行的。

我需要:

ID: 101
ID: 102
ID: 103
...

最佳答案

不要填补空白。重新编号现有行是一个非常糟糕的主意,特别是如果它是 PK 字段。例如,想一想如果有一天他们决定社会保险号码必须是连续的,所以当人们死亡以填补空白时,他们将它们全部向下移动,这会造成困惑。因此,您会得到一个经常更改的 ID 号,该 ID 号曾经属于其他人。

对于一个好的代理键,实际值应该没有任何意义,因此间隙也没有任何意义。

如果这对您来说是一个主要问题,为什么不直接添加一个 isDeleted 位字段并标记记录而不是实际删除它们。瞧,没有缝隙!

如果您绝对必须有一个递增的数字(如行号),那么只需 do it in your queries所以你不必招致维护它的麻烦。

关于mysql - 我怎样才能让我的标识列连续而没有间隙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8744931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com