我的一张表上有一个自动增量主键。如果我有 3 行,例如,删除第三行,我只剩下两行。但是,如果我插入一个新行,它的 ID 自动为 4,并且 ID 为 1、2 和 4。
如何重新使用已删除的 ID 并使新插入的记录的 ID 自动为 3?
我的一张表上有一个自动增量主键。如果我有 3 行,例如,删除第三行,我只剩下两行。但是,如果我插入一个新行,它的 ID 自动为 4,并且 ID 为 1、2 和 4。
如何重新使用已删除的 ID 并使新插入的记录的 ID 自动为 3?
真的,你不应该。主键应该是纯技术的、无意义的值。他们的价值,以及一代人的单调,根本不重要。
此外,由于它是行的 PK,因此在其他表中可能有数十(或数千)行引用此 ID(外键),因此在表中更改它是不够的:您必须更改它无处不在。
并且这个 ID 很有可能在其他应用程序中也被引用(例如,它可能是浏览器中带有书签的 URL 的一部分),并且更改它的值会使所有这些引用无效。
您永远不应该更改主键。它应该是不可变的,永远。
编辑:我误读了这个问题。您实际上想重用旧 ID。这也是一个坏主意。现有的引用会引用它们最初引用的东西。当您更改电话号码并且它被其他人重复使用时,就会发生这种情况,他们开始接到许多仍然认为这个电话号码是您的人的电话。很烦人。你想避免这种情况。