"auto_increment, погоди!"

Статус
В этой теме нельзя размещать новые ответы.

go6a

Новичок
"auto_increment, погоди!"

В процессе работы из mysql таблицы удаляются ряды и остаются пустоты если ориентироваться по их ID (=порядковому номеру).
Надо определить высвободившиеся значения ID чтобы ряд создать с пропущенным значением а не то которое предлогает
auto_increment.

Решаю так:

1) Циклом сканирую существующие ряды и нахожу максимально значение ID которое встречается
2) Циклом сканирую все ID от нуля до максимального найденного значения ID с целью нахождения пропущенного числа.

Все работает, проблемма только в том что я не могу написать выражение if для второго шага, когда мне нужно сравнить число со
значением ячейки которой не сушествует и остановить цикл. Выражения типа !$lostID или $lostID=="" не срабатывают, хотя тестовая echo выводит пустоту.

Посоветуйте? Код не привожу чтобы не было лишних вопросов.
 

tf

крылья рулят
хм, создается временная таблица с id IN(1, n-max)
при сложении таблиц выбираем те записи которых нет в твоей таблице, но есть во временной

-~{}~ 03.09.07 03:16:

Ничего не работает! Что делать?

-~{}~ 03.09.07 03:19:

Mr_Max, одна из бредовых идей - это ограничивать количество элементов в таблице какими-то рамками, и оптимизировать размер столбцов этимиже рамками
да в большинсве случаев это ненужно
 

zerkms

TDD infected
Команда форума
tf
вообще-то гораздо практичнее создать таблицу с 0-9 и джоинить её нужное число раз, тогда уж
 

tf

крылья рулят
zerkms, у меня до практики еще не доходило :(
 

go6a

Новичок
Mr_Max как правило вы игнорируете мелочи сначала сознательно, но потом наступает момент когда вы привыкаете и их уже не можете заметить когда это необходимо. Кстати к той статье есть достойные ответы, так что не считаю нужным их дополнять.

tf, большое спасибо, ночью мне пришла похожая идея, но без таблиц. Но этот метод скорее компромисный.

Меня же, как абсолютного новичка, больше интересовал синтаксис сравнительного выражения, если такое существует или оператор.
Скоростью работы и цифрами экономии в данном случае можно пренебречь полностью, не в них дело.
 

Wicked

Новичок
Тебя же, как абсолютного новичка, интересуют вещи, которые интересовать не должны.

стати к той статье есть достойные ответы, так что не считаю нужным их дополнять.
Это какие же? Интересно твое мнение.
 

Фанат

oncle terrible
Команда форума
Хотел ополчиться на этого "асолютного новичка", который, правда, лучше всех знает, как делать правильно.
Но виноват-то не он. А парочка местных ламеров, которым в ночи захотелось поразмышлать о нестандартном решении задач.
Ну ничего. Я запомню.
 

tf

крылья рулят
тут много чего ссамого начала уже не закрывают, тол-ку то?
 

Zetruger

ivan.chistyakov.name
go6a
то что ты пытаешься сделать неправильно
чем тебе мешают отсутствующие ID?
 

kruglov

Новичок
Zetruger
Вы вообще решили просто ответить или сначала почитали предшествующие ответы?
 

tf

крылья рулят
kruglov, а зачем ему, у него вон ссылка на форум стоит, + везде будет много ссылок на его форум
 

Qwerty

Новичок
go6a
Передо мной как-то стояла, похожая задача.
Была таблица в которой часто удалялись и вставлялись строки, но требовалось сохранять максимальный ID в таблице как можно меньшим, т.е. не позволять постоянно увеличиваться через auto_increment.
 

Фанат

oncle terrible
Команда форума
аффтар все равно на тему забил, а гениев-советчиков, как всегда, как мух слетается.
закрываем
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху