Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个表 PERSON_TABLE,它有 P_ID、P_NAME、P_AGE
P_ID 是主键和自动增量..
我有一个活动,用户将手动将数据放入每一列。如果成功,它将有一个主键,从 1 开始,然后是 2 ,然后是 3 等等。
但该应用程序也有其删除功能。如果我删除第 2 行,然后我再次插入 1 行,它将具有主键 4,我希望下一个插入的数据将使用第一个可用的主键,即 2。我该如何实现?
谢谢
您确实应该重新检查此要求-很少需要。
由于总会出现序列中存在间隙的情况(除非您在删除时重新排序,这将是性能杀手),您的应用程序将不得不处理它。
而且,由于您的应用程序处理它,它也可以一直处理它。
我想不出人工主键需要连续的真正原因。除了使用主键作为真实数据的编写不佳的查询(他们可能不应该使用人工键)之外,排序中的差距不会影响性能。
所以我的建议是从不需要连续键的假设开始(而不是从需要它们的想法开始),然后想出一个你认为它们是的原因。我想你会发现很难想出一个不能以更好的方式满足的理由。