о, кстати, забыл самое главное. У меня это "сжатие" делалось тогда, когда разница между максимальным и минимальным была больше, чем минимальное - чтобы избежать конфликта при перенумеровке.
Тут тогда надо сначала пронумеровать все ID значением ID+MAX(ID) , затем только с единички
declare varible delta BIGINT;
/*создаём коридор для гарантии несовпадения ID при перенумеровке*/
select max(ID)-min(ID)+1 from table into :delta;
update table set ID=ID+delta;
/*перенумеровываем с единички*/
select min(ID)+1 from table into :delta;
update table set ID=ID-delta;
/*корректировка генератора*/
select max(ID) from table into :delta;
set generator ИМЯ_ГЕНЕРАТОРА to delta;
А ещё один вариант - создать копию таблицы, очистить исходную, установить генератор в 1, затем закинуть туда записи. Но это долго, если таблица большая )