Восстановление последовательности записей.

Borispol

Новичок
Всем привет!
Очень прошу помощи в следующем вопросе: В таблице есть 10 колонок с Х записями, из которых в двух - в id и num, содержатся записи последовательных чисел с инкрементом в 1 (единицу) в порядке возрастания. В процессе работы, периодически, из таблицы удаляются какие-то записи, в результате чего, последовательность чисел в этих колонках нарушается. Требуется, чтоб после каждого удаления записи, происходило автоматическое восстановление последовательности чисел в этих столбцах с инкрементом в единицу. Например: было 50 последовательных записей (1, 2, 3 ..... 50), и потом удалили 45-ую запись. Понятно, что стало 49 записей, но уже в таком порядке: ...., 43, 44, 46,47, 48, 49. А нужно, чтоб после удаления 45-ой записи стало: ..., 43 44, 45,46, 47,48, 49. Т.е. чтоб последовательность была автоматически восстановлена сразу же после удаления любой записи из данного столбца.
Заранее благодарен.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ответь на вопрос, зачем?
 

Borispol

Новичок
Передо мной поставлена такая задача со стороны пользователя данной базой и без объяснения причин с его стороны.... имеет право... а я, к сожалению, пока не смог решить эту задачу, потом у и решил обратиться к Вашему форуму.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Borispol, так вот, пользователю этой базы это вряд ли нужно. Эта задача с родни тому, что ты будешь пытаться восстановить пробелы в автоинкрементном поле, это, скажем так - хреновая практика.

Ну, самый простой вариант - это при удалении записей, всем идентификаторам, что выше удаленного делать value=value-1, но, повторюсь, не надо это делать без явной необходимости.
 

Borispol

Новичок
Не хочу обидеть, но это нужно именно пользователю и могу даже сказать что (как я смог предположить из разговора с ним) ему это нужно чтоб при распечатке, числа в этом столбце шли без "пробелов". А то, что по идее, всему что находится выше удаленной записи нужно делать value=value-1 было понятно с самого начала. Только мне нужен работающий код а не "идея"... если кто может помочь в этом вопросе, прошу - помогите.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Borispol, UPDATE table SET colunm=column-1 WHERE id > [deleted id]

Ну как-то так. Готового кода тут не дают, тут объясняют как сделать, а дальше вы сами пишете код. И если с ним проблемы - тогда тут помогают поправить.
 

Borispol

Новичок
@Borispol, UPDATE table SET colunm=column-1 WHERE id > [deleted id]

Ну как-то так. Готового кода тут не дают, тут объясняют как сделать, а дальше вы сами пишете код. И если с ним проблемы - тогда тут помогают поправить.
Понял. Благодарен, обязательно попробую и если не сработает, - обращусь. С уважением....
 

AnrDaemon

Продвинутый новичок
То, что пользователь распечатывает, никак не относится к тому, что хранится в БД.
Тебе правильно сказали, не надо этого хотеть.
 

Borispol

Новичок
То, что пользователь распечатывает, никак не относится к тому, что хранится в БД.
Тебе правильно сказали, не надо этого хотеть.
А то что?............... Вот только не надо пустых нравоучений.... осталось только чтоб ты мне говорил чего мне хотеть а чего нет... ведь если бы мог решить вопрос - не стал бы тупо "умничать" а код написал бы... И вообще - можешь помочь в этом вопросе - помоги, не можешь или не знаешь, - вали с этой темы и оставь свое мнение при себе...
 

Hello

Новичок
А то что?............... Вот только не надо пустых нравоучений.... осталось только чтоб ты мне говорил чего мне хотеть а чего нет... ведь если бы мог решить вопрос - не стал бы тупо "умничать" а код написал бы... И вообще - можешь помочь в этом вопросе - помоги, не можешь или не знаешь, - вали с этой темы и оставь свое мнение при себе...
Если хочешь чтобы тебе помогли, оставь свое мнение при себе, не можешь - вали с этой темы
 

Sufir

Я не волшебник, я только учусь
@Borispol, не груби, я объясню подробно и доступно... здесь у тебя есть только два варианта:
  1. Ты сам пишешь код, а с тем, что не получается тебе подсказывают, что бы получилось написать код.
  2. Ты платишь деньги и для тебя пишут код.
Соответственно, тебе нужно для начала показать что ты написал на данный момент и рассказать, что конкретно не получается. Либо просто озвучиваешь сумму и ищешь исполнителя.

P.S.: Но в первую очередь тебе хорошенько нужно подумать над этим http://phpfaq.ru/humor/anecdotes#surgery
 
Сверху