Как заставить нормально работать auto_increment?

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

php_newbie

Новичок
Как заставить нормально работать auto_increment?

Проблема в следующем: создал новую таблицу и присвоил в ней полю id значение auto_increment, чтобы оно заполнялось автоматически. После этого добавил три записи и auto_increment работал нормально, то есть номера записей шли так - 1, 2, 3. Затем добавил четвёртую запись, а потом её удалил. Добавляя же новую запись ей присвоился не 4 номер, как положено, а 5. Подумал, что ошибка и удалил, добавив заново, но id уже был под номером 6. То есть получилась такая картина - 1, 2, 3, 6. Это можно как-то исправить?

Спасибо за ответ.
 

Фанат

oncle terrible
Команда форума
auto_increment у тебя работает нормально, как и положено.
исправлять ничего не надо
 

php_newbie

Новичок
Mr_MaxЧто-то подобное я уже читал, но можно ли как-то исправить нумерацию, чтобы она снова шла подряд. То есть при добавлении новой записи писалось не 7,8,9 и т.д., а 4, а также, чтобы я если что-то удалял из БД, то цифры id приходили в нормальный порядок и шли друг за другом? Или это нереально?
 

Фанат

oncle terrible
Команда форума
это не нужно.
тебе хватит интеллекта, чтобы это понять?
 

php_newbie

Новичок
x-yuriНапример, в какой-либо таблице вывести определённую информацию с нумерацией ячеек подряд (номер ячейки - id) или, скажем, сформировать список, чтобы его элементы шли подряд, а в качестве номера элемента выступал id. Или же такой порядковый номер необходимо каждый вручную вводить, а id использовать для других целей?

*****Я, конечно, понимаю что ты очень умный, но не все такие умные, как ты. Особенно те, кто только начинает изучать и не знает некоторых нюансов. Надеюсь, тебе тоже хватит интеллекта это понять-:)
 

zerkms

TDD infected
Команда форума
php_newbie
Или же такой порядковый номер необходимо каждый вручную вводить, а id использовать для других целей?
cовершенно верно - при выводе считай $i++, а автоинкремент считай уникальным идентификатором записи. как раз уникальность и определяет, что удалённый номер никогда не будет занят.
 

DiMA

php.spb.ru
Команда форума
php_lamer, не делай так:

1. удалить атрибут auto_increment у поля
2. заблокировать таблицу на запись
3. получить максимальный ид
4. вставить строку с ид+1
5. разблокировать таблицу

-~{}~ 19.01.09 17:19:

мля, кто темы перемещает?
 

Фанат

oncle terrible
Команда форума
я.

Дим, зачем ты это делаешь?
Очевидно, что ему это не нужно. Но со своей нубской позиции он думает, что нужно. И будет делать. потому что дурак. Какой смысл в твоем комментарии?

-~{}~ 19.01.09 17:23:

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

DiMA

php.spb.ru
Команда форума
Затем, что человек не в состоянии допереть до данного простого алгоритма, иначе бы не спросил. Теперь его кругозор расширится. После чего, возможно, он подумает о проблемах.
 

zerkms

TDD infected
Команда форума
DiMA
да уж, человек не знает о работе автоинкремента, но зато он сумеет заблокировать таблицу... смешной ты.
 

DiMA

php.spb.ru
Команда форума
а раз не знает об автоинкременте, поэтому тему нужно срочно закрыть и чайника послать нах

Ай-ай-ай... Не дай Бог узнает!

кроме того, описанная техника из 5ти пунктов широко применяется, ну, естественно, не для ИД-полей, а иных счетчиков
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху