-2

我的一张表上有一个自动增量主键。如果我有 3 行,例如,删除第三行,我只剩下两行。但是,如果我插入一个新行,它的 ID 自动为 4,并且 ID 为 1、2 和 4。

如何重新使用已删除的 ID 并使新插入的记录的 ID 自动为 3?

4

1 回答 1

1

真的,你不应该。主键应该是纯技术的、无意义的值。他们的价值,以及一代人的单调,根本不重要。

此外,由于它是行的 PK,因此在其他表中可能有数十(或数千)行引用此 ID(外键),因此在表中更改它是不够的:您必须更改它无处不在。

并且这个 ID 很有可能在其他应用程序中也被引用(例如,它可能是浏览器中带有书签的 URL 的一部分),并且更改它的值会使所有这些引用无效。

您永远不应该更改主键。它应该是不可变的,永远。

编辑:我误读了这个问题。您实际上想重用旧 ID。这也是一个坏主意。现有的引用会引用它们最初引用的东西。当您更改电话号码并且它被其他人重复使用时,就会发生这种情况,他们开始接到许多仍然认为这个电话号码是您的人的电话。很烦人。你想避免这种情况。

于 2013-03-16T13:48:28.163 回答