khipster
@khipster

Ошибка Duplicate entry для PRIMARY KEY из 2х колонок таблицы?

Duplicate entry '16-2147483647' for key 'PRIMARY', а на самом деле пытаюсь записать 16-234523452345, такой пары нет. Это сообщение выводится одной и той же командой, тут нет ошибки 100%, пытаюсь записать одно, а выводит ошибку о другом.

16-2147483647 действительно есть (правда не понятно откуда взялся).

Кто нибудь с чем то похожим сталкивался? Что это? Глюк MySQL?
  • Вопрос задан
  • 355 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
у Вас по всей видимости поле интовое. Вы пытаетесь запись число 234523452345 которое выходит за пределы максимально допустимого значение инта в MySQL. Соответственно в такой ситуации MySQL приводит число 234523452345 к максимально допустимому (а это 2147483647) и добавляет запись в базу. При второй попытке вставить данные выходящие за предел типа - выполняются такие же операции в результате чего и появляется ошибка.
Как вариант используйте UNSIGNED INT или bigint
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
severus256
@severus256
Code everywhere....
А вы записываете одну конкретную запись в таблицу или сразу много из какого-то источника? Пробовали удалить все из таблицы ?
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
214748364710 = 0x7FFFFFFF - максимальное значение для типа INT в MySQL.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы