我有一张带有主键字段 ID 的表。我不想使用自增,因为我需要让用户手动选择新对象的 ID。所以我的想法是:
- 默认情况下,在编辑视图中,ID 字段将为 0。
- 如果用户没有更改它,我需要找到第一个空闲的 ID 并使用它。
- 如果用户更改了 ID,则首先需要检查是否有另一个具有该 ID 的对象,在这种情况下抛出错误。
- 如果没有,则使用用户选择的 ID。
- 创建新对象
ID
--
1
2
10
第一个可用的ID是3。
例子2:
ID
--
1
2
3
4
第一个空闲ID是5
有没有什么方法可以实现这个目标?我所能想到的是获取最小值和最大值,创建一个循环以获取可能的数值,然后与表数据进行比较,但这涉及到向数据库发送太多的查询请求。谢谢!