![]() |
MySQL и AUTO_INCREMENT
Есть таблица с полем id int(2) которое автоинкрементируется. Удаляем запись. Например с id = 7. Соответственно последним в таблице остаётся id = 6. Но при создании новой записи ей присваевается id = 8. В результате список получается 1,2,..,6, 8 . Задача: получать автоинкремент именно по порядку.
Непойму, толи я чё-то не дочитал, толи время суток о себе напоминает... |
таблица запоминает какой иммено индекс поставить. например если у такой таблицы нажать на экспорт то там при структуре будет и такая строка
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_bin PACK_KEYS=0 AUTO_INCREMENT=8 ; в твоем случае наверное придеться получать последний id и к нему плюсовать 1... |
Этот вопрос поднимался стотыщмильонаф раз. И я, и другие люди уже отписывались по этому поводу, почему так не стоит делать. Порыскай по форуму - думаю найдеш ответ на свой вопрос.
upd: вот к примеру уже был ответ на аналогичный вопрос https://forum.antichat.ru/showpost.php?p=707028&postcount=71 |
Midas не занимайся глупостями .... как идут так пусть идут .... то что ты хочешь тебе не надо
|
ДА, многие пугаются того, что вот были индексы 1,2,3 а потм удалили какой-нить ид и добавили новый и получилось 1,2,4. НИЧЕГО СТРАШНЕГО. id = это не порядковый номер и не нада на него полагатся. Еслм хочется. чтоб у каждой записи был порядковый правильный номер,, то придется отделбную колонку заводить и при добавлении вычислять скока строк в бд + 1.. Но это не нужно в 99%
|
да, я уже понял. Сперва на вебборде мускуль.ру, теперь здесь. Хотел одну функцию привязать к записи в базе намертво, зацепившись за id. Неполучилось и теперь начинаю понимать, что хорошо, что не получилось.
|
| Время: 05:11 |