PDA

Просмотр полной версии : MySQL и AUTO_INCREMENT


Midas
07.04.2009, 02:44
Есть таблица с полем id int(2) которое автоинкрементируется. Удаляем запись. Например с id = 7. Соответственно последним в таблице остаётся id = 6. Но при создании новой записи ей присваевается id = 8. В результате список получается 1,2,..,6, 8 . Задача: получать автоинкремент именно по порядку.

Непойму, толи я чё-то не дочитал, толи время суток о себе напоминает...

blaga
07.04.2009, 05:37
таблица запоминает какой иммено индекс поставить. например если у такой таблицы нажать на экспорт то там при структуре будет и такая строка

) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_bin PACK_KEYS=0 AUTO_INCREMENT=8 ;

в твоем случае наверное придеться получать последний id и к нему плюсовать 1...

VDShark
07.04.2009, 08:54
Этот вопрос поднимался стотыщмильонаф раз. И я, и другие люди уже отписывались по этому поводу, почему так не стоит делать. Порыскай по форуму - думаю найдеш ответ на свой вопрос.
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%

Midas
07.04.2009, 20:55
да, я уже понял. Сперва на вебборде мускуль.ру, теперь здесь. Хотел одну функцию привязать к записи в базе намертво, зацепившись за id. Неполучилось и теперь начинаю понимать, что хорошо, что не получилось.