порядковая нумерация без "дыр"

iceman

говнокодер
порядковая нумерация без пропусков

Вообщем, записи пронумерованы по порядку с помощью SEQUENCE

при добавление записи, нужно просмотреть "пустоты в нумерации" (типа: 1, 2, 3, 4, (запись с id 5 была удалена), 6, 7, (запись с id 8 была удалена), 9) и этой записи присвоить этот приопущенный id

-~{}~ 03.08.09 13:47:

вопрос закрыт, чуть позже решение напишу...
 

MuXaJIbI41981

Новичок
тут не надо искать решения .. это тебе не надо просто на самом деле
 

iceman

говнокодер
нет, это мне нужно на самом деле, заказчик не хочет иметь длинные номера договоров

-~{}~ 03.08.09 14:04:

PHP:
select
   r.id+1 x
from (
  select
    t.id,
    lead (t.id) over (order by  t.id) - t.id n
  from my_table t
  order by  t.id) r
where r.n > 1 and rownum < 2
 

DiMA

php.spb.ru
Команда форума
нет, ты не должен этого хотеть

но выход есть:

в базе делаешь обычный автоинкремент и работаешь с ним
а вот как заполнить поле НОМЕР ДОКУМЕНТА - думаешь сам

1С не имеет дыр, хотя документы могут длительно создаваться (без записи) многими людьми сразу и потом либо записываться с тем же номером, либо отменяться
 

iceman

говнокодер
у меня есть поль id и номер_документа... первоначально сделал так чтобы его ручками вписывали, рассчитывая на то, что у них как то ведеться нумерация, в итоге оказалось что - нет, и вписывать ручками тоже не хотят и не хотят иметь длинные номера документов....

ps.ну и правда какая же это автоматизация, если придется отдельно ввести на бумаге нумерацию документов...

pss. это не 1С +)
 

Фанат

oncle terrible
Команда форума
Что за дурацкая идея, что номера будут длинными? У них на 1 заключенный договор приходится по 10 расторгнутых?
Что за дурацкая идея, когда один и тот же номер имеют НЕСКОЛЬКО договоров? Что это за идиотизм? Звонит заказчик, называет номер договора, его обслуживают, потом выясняется, что он назвал номер удаленного договора, а его обслуживают по вновь заведенному совсем другого заказчика?
 
Сверху