我有一张PERSON_TABLE表,其中有P_ID,P_NAME,P_AGE
P_ID是主键和自动增量..
我有一项活动,用户将手动将数据放入每列。 如果成功,它将有一个主键,从1开始,然后是2,然后是3,依此类推。
但应用程序也有删除功能。 如果我删除第2行,然后我再插入1行,它将有主键4,我希望下一个插入的数据将使用第一个可用的主键,即2.我怎样才能实现?
感谢
答案 0 :(得分:3)
你真的应该重新审视这个要求 - 这很少是必要的。
由于总会出现序列中存在空白的情况(除非您重新排序删除,将成为性能杀手),您的应用必须处理它。
而且,既然你的应用程序处理它,它也可能一直处理它。
我可以想到为什么人工主键需要连续的真正原因。排序中的差距不会影响性能,除了使用主键作为真实数据的写得不好的查询(并且它们可能不应该使用人工密钥)。
所以我的建议是启动,假设连续的密钥不需要(而不是从认为需要它们开始),然后出现有理由认为他们是。我认为你很难找到一个无法以更好的方式满足的理由。