找到缺失的索引

时间:2009-07-13 11:50:47

标签: sql

我有一个表,自动编号为id(称为id),范围为1 - 159270,因此从table1中选择max(id)返回159270,但我认为其中一条记录已被删除,是否有一个简单的找出哪个ID丢失的方法?

由于

2 个答案:

答案 0 :(得分:6)

蛮力:

SELECT * FROM table T1
WHERE NOT EXISTS (SELECT * FROM Table T2 WHERE T2.ID = T1.ID - 1)

这应该列出的行只是已删除的行。

答案 1 :(得分:3)

如果一行中缺少多个ID,则无法正常工作......但速度很快:

select t1.id + 1 as missing_id
from mytable t1
left join mytable t2 on t1.id + 1= t2.id
where t2.id is null