如何防止 ID 增加并使用第一个可用的未使用 ID?

How to keep ID from increasing and use first available unused ID instead?

当我从 table 中删除一个项目时,我希望在 table 中添加下一个项目时,该项目应该使用第一个可用的未使用 ID。我怎样才能做到这一点?当我删除所有项目并创建新项目时,发生了这种情况:

在这种情况下,项目 ID 21 为 1 会好得多。

您是说要将自动增量 ID 重新排列回 1?我相信这会解决它 Reorder / reset auto increment primary key

我建议不要修改(看起来像的)主键列。作为副作用的一个例子:如果其他实体正在引用主列,这将失败或破坏关系。此外,您可能需要为执行的每个 delete 重新编号整个 table。

如果你想要一个动态的自动递增的数字,你可以在视图中使用row_number()

create view myview as
select
    row_number() over(order by item_id) item_id,
    title,
    description
from mytable 

然后您可以查询视图而不是 table,这会为您提供始终最新的增量编号。