可能重复:
Find missing values
How do I get first unused ID in the table?
myTable
-----+---------
ID | Value
-----+---------
7 | Foo
9 | Bar
19 | Etc
我需要在这里查询以获取缺少的ID(编号1),结果将只是第一行(结果),可能使用LIMIT 1
,然后使用此ID插入。所以,看起来会这样:
myTable
-----+---------
ID | Value
-----+---------
1 | Fir
7 | Foo
9 | Bar
19 | Etc
现在在下一个查询中,它只会产生数字2。
注意:
- 我正在使用MySQL 5.1.32
答案 0 :(得分:0)
这适用于T-SQL:
DECLARE @GapTable
(
ID int IDENTITY(1,1),
OtherTableID int
)
INSERT INTO @gapTable (OtherTableID)
SELECT OtherTableID = ID
FROM OtherTable
ORDER BY ID
SELECT MIN(ID)
FROM @GapTable
WHERE ID <> OtherTableID
基本上,您创建一个表变量并将所有内容插入其中。这应该为您提供一个已知良好的ID值列表。然后,您只需选择生成的ID与现有ID不匹配的第一个值,您就会知道可以使用的内容。