0

我有一个表 PERSON_TABLE,它有 P_ID、P_NAME、P_AGE

P_ID 是主键和自动增量..

我有一个活动,用户将手动将数据放入每一列。如果成功,它将有一个主键,从 1 开始,然后是 2 ,然后是 3 等等。

但该应用程序也有其删除功能。如果我删除第 2 行,然后我再次插入 1 行,它将具有主键 4,我希望下一个插入的数据将使用第一个可用的主键,即 2。我该如何实现?

谢谢

4

1 回答 1

3

您确实应该重新检查此要求-很少需要。

由于总会出现序列中存在间隙的情况(除非您在删除时重新排序,这是性能杀手),您的应用程序将不得不处理它。

而且,由于您的应用程序处理它,它也可以一直处理它。

我想不出人工主键需要连续的真正原因。除了使用主键作为真实数据的编写不佳的查询(他们可能不应该使用人工键)之外,排序中的差距不会影响性能。

所以我的建议是从不需要连续键的假设开始(而不是从需要它们的想法开始),然后想出一个你认为它们是的原因。我想你会发现很难想出一个不能以更好的方式满足的理由。

于 2012-12-29T02:31:19.693 回答