Ошибка: Numeric value out of range: 1264 Out of range value for column

Главные вкладки

Аватар пользователя voviko voviko 21 ноября 2019 в 16:41

Ошибка возникает при вводе длинных цифр в поле (number). Вроде как в БД int(11) и больше никак не вставить. например ОГРН 13 знаков.
Лечение такое вот нашёл:

ALTER TABLE profile__field_ogrn_organizacii MODIFY COLUMN field_ogrn_organizacii_value BIGINT;
ALTER TABLE profile_revision__field_ogrn_organizacii MODIFY COLUMN field_ogrn_organizacii_value BIGINT;

Насколько это правильно? Какие есть альтернативы для целых длинных чисел?

Лучший ответ

Комментарии

Аватар пользователя marassa marassa 21 ноября 2019 в 16:49
1

voviko wrote:
в поле (number) ... например ОГРН

Число - это то, с чем можно осмысленно производить арифметические операции (сложение, вычитание, умножение и деление). Любой код - это строка (текст).
Что Вы будете делать, когда после очередного постановления правительства в этом ОГРН появятся буквы?

Аватар пользователя bumble bumble 21 ноября 2019 в 17:15
1

Все верно. Плюс, нужно учитывать еще один аспект - необходимость сортировки.

По числу:

  • 1
  • 25
  • 125

По строке:

  • 1
  • 125
  • 25

А еще, со строкой возможны такие значения как "000025".