Значение в операторе вставки не соответствует вставленному значению - PullRequest
2 голосов
/ 16 февраля 2012

После того, как я выполню следующий запрос:

INSERT INTO `temp` (`id`, `user_id`) VALUES (110, 100003568483914);

Результат в базе данных:

**id    user_id**
110 2147483647

Почему значение в таблице отличается от того, которое было вставлено?

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

do describe temp вы увидите, что user_id является знаком INT, то есть 31 бит для числа + один бит для знака, что дает вам диапазон от -2 ^ 31 до 2 ^ 31 -1 (2147483647 = 2 ^ 31 -1).

вам нужно изменить тип столбца на user_id; похоже, вы храните идентификаторы пользователей Facebook, для которых я бы порекомендовал использовать строки; в любом случае вам никогда не понадобится делать какие-либо арифметические действия.

0 голосов
/ 16 февраля 2012

Измените тип поля на LONG или BIGINT или без знака INT (без знака INT, вероятно, достаточно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...