好的,我正在使用 PostgresQL 制作用户数据库,我已经使用了一两个月,但不是很熟悉。目前,每个注册的用户都会通过 PostgresQL 序列自动分配一个唯一的 ID。这一直是惯例,并且一直运行良好,但是......我有来自客户的请求,希望能够手动输入用户的某些 ID。我预计用户不会超过 300 个,因此我为手动输入的 ID 保留了 ID 500-600。(如果他们在线注册,他们会得到自动递增的数字,很可能不会超过 300。如果他们需要手动 ID,他们会获得一个预先确定的 ID,介于 500 和 600 之间。)是的,我 99.9999% 确信不会有超过 300 个“自动识别”用户。
我真的希望能够提供我想要的任何手动 ID,然后如果他们在线注册并且 ID 已被占用,他们将获得下一个可用 ID。我意识到这违背了序列的目的,但是,我不确定我的其他选择是什么。我只能给出一定数量的 ID,所以如果可能的话,我宁愿不只是“max+1”——我想“填补空白”。我相当确定答案在于手动输入 ID 时更新序列的某个地方,但这听起来是个坏主意,不知道为什么。
如果这不是一个好主意,就说——“嘿,你是个白痴。谁让你负责数据库的?” 我们将继续我们的一天。谢谢你的时间。