MySQL Error! Error Number: 1062

mysql-errorСегодня, благодаря некоторым пользователям, удалось выявить некую странную ошибку в базе одного из скриптов. Ошибка не позволяла пользователям полностью завершить этап регистрации на сайте. Что весьма интересно – совсем недавно все прекрасно работало – проверял лично. Изменений на сайте практически не проводилось, но что-то видимо пошло не так. Ошибка следующего содержания:

MySQL Error!
------------------------
The Error returned was:
Duplicate entry '8388607' for key 'PRIMARY'

Error Number:
1062

Долго пришлось разбираться почему же вместо следующего нормального ID пользователя (к примеру 13921) выставлялось в базе 8388607, что за магические цифры такие. Решил поискать решение проблемы в сети Интернет, но, к сожалению, ничего не удалось найти вообще. Пришлось немножко попотеть и раскинуть мозгами, в результате чего результат был достигнут, но не совсем в той форме, которой бы я хотел его видеть. Я банально сменил тип переменной для этого значения в базе с mediumint на bigint и ошибка пропала. По всей видимости, то число являлось пределом типа переменой mediumint, но откуда взялось это число в порядковом номере пользователя – не известно.

Вечно случается какая-нибудь хрень(

  1. Алексей

    Жаль, что вы не разобрались с данной проблемой более качественно. Столкнулся с данной проблемой, но решить её достаточно просто: ALTER TABLE ТУТ НАЗВАНИЕ ТАБЛИЦЫ AUTO_INCREMENT=0

    При этом существующую нумерацию не нарушает, а выставляет значение следующее по последовательности. Надеюсь кому то поможет.

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

Оставить комментарий