1
我有一个表,自动编号id(称为id)范围从1 - 159270,所以从table1选择max(id)返回159270,但我认为其中一个记录已被删除,有没有一种简单的方法来找出哪个ID丢失?找到一个缺失的索引
感谢
我有一个表,自动编号id(称为id)范围从1 - 159270,所以从table1选择max(id)返回159270,但我认为其中一个记录已被删除,有没有一种简单的方法来找出哪个ID丢失?找到一个缺失的索引
感谢
蛮力:
SELECT * FROM table T1
WHERE NOT EXISTS (SELECT * FROM Table T2 WHERE T2.ID = T1.ID - 1)
这应该列出行只是跟着删除的文件。
不工作,如果超过一个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
非常感谢你,soted我的问题,简单,当你看到它,总是忘记SQL是多么简单 – spacemonkeys 2009-07-13 11:58:21