Нахождение отсутствующего индекса - PullRequest
1 голос
/ 13 июля 2009

У меня есть одна таблица с идентификатором autonumber (называемым id) в диапазоне от 1 до 159270, поэтому выбор max (id) из table1 возвращает 159270, но я думаю, что одна из записей была удалена, есть ли простая способ узнать, какой идентификатор отсутствует?

Спасибо

Ответы [ 2 ]

6 голосов
/ 13 июля 2009

Грубая сила:

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

В этом списке должны быть перечислены строки, следующие за удаленными.

3 голосов
/ 13 июля 2009

Не работает, если в строке отсутствует более одного идентификатора ... но быстро:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...