Проблема с AUTO_INCREMENT

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

yeaahhh

Старатель
Регистрация
8 Май 2008
Сообщения
278
Реакции
11
Ребят. Не пойму в чём дело.
При регистрации, в MYSQL пользователю присваивается id..
на соответственном поле стоит AUTO_INCREMENT. Но. Иногда, пользователю присваивается id не по порядку.
Например: 1,2,5,6,7,8,9,12,13 и т.д.
В чём может быть причина?
Заранее спасибо!
 
Может быть какие-то записи удалены были?
да, и не помню я , чтобы AUTO_INCREMENT гарантировал непрерывную последовательность
 
Нет.. Записи удалены не были..
А можно ли тогда как-то сделать последовательную запись id?
Приходит на ум только запрос максимального id, прибавление единицы и запись полученного числа в таблицу..
Может быть ещё есть какие-нибудь варианты?
 
да, и не помню я , чтобы AUTO_INCREMENT гарантировал непрерывную последовательность
AUTO_INCREMENT берет текущее значение "AUTO_INCREMENT" и прибавляет к нему единицу ... всегда ...
таким образом переменная AUTO_INCREMENT растет последовательно, и соответственно значения айдишников должны увеличиваться последовательной
 
Вот что-то сбои бывают.. Сам не знаю, почему.. стоит A_I 100%..
 
  • Заблокирован
  • #6
А если через phpmyadmin добавлять записи, инкремент тоже сбоит?
 
AUTO_INCREMENT берет текущее значение "AUTO_INCREMENT" и прибавляет к нему единицу ... всегда ...
таким образом переменная AUTO_INCREMENT растет последовательно, и соответственно значения айдишников должны увеличиваться последовательной
Глупости это. Он берет не последний ид в базе. А в базе есть специальный счетчик для AUTO_INCREMENT который и подсчитывает.
В данном случае скорее всего такой вариант были пользователи 1,2,3,4 потом пользователей с ид 3 и 4 удалили. остались только 1 и 2. Потом добавляем следующего и у него будет ид 5.
См. картинку. (это phpMyAdmin)
Для просмотра ссылки Войди или Зарегистрируйся
 
есть смутное и очень сомнительное подозрение, что такое может возникать из-за конкурирующих транзакций. Если удаления не было, как утверждает ТС, то это наиболее вероятно
 
есть смутное и очень сомнительное подозрение, что такое может возникать из-за конкурирующих транзакций. Если удаления не было, как утверждает ТС, то это наиболее вероятно
какие транзакции? ты разберись сначала с типом БД, я на 100% уверен что у него MyISAM а не InnoDB и при чтении/записи блокируется вся таблица целиком, так что ни о каких транзакциях тут не может быть и речи.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху