Просмотр полной версии : 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
MuXaJIbI4
07.04.2009, 10:11
Midas не занимайся глупостями .... как идут так пусть идут .... то что ты хочешь тебе не надо
Krist_ALL
07.04.2009, 15:14
ДА, многие пугаются того, что вот были индексы 1,2,3 а потм удалили какой-нить ид и добавили новый и получилось 1,2,4. НИЧЕГО СТРАШНЕГО. id = это не порядковый номер и не нада на него полагатся. Еслм хочется. чтоб у каждой записи был порядковый правильный номер,, то придется отделбную колонку заводить и при добавлении вычислять скока строк в бд + 1.. Но это не нужно в 99%
да, я уже понял. Сперва на вебборде мускуль.ру, теперь здесь. Хотел одну функцию привязать к записи в базе намертво, зацепившись за id. Неполучилось и теперь начинаю понимать, что хорошо, что не получилось.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot