Передача объектов с длинными целыми числами в MYSQL с помощью SQLAlchemy
Я пытаюсь добавить большое целое число к MySQL
стол с SQLAlchemy
, Как объясняет этот ответ, вы не можете пройти Integer
аргумент длины, как вы можете String
, Итак, следуя этому ответу, я определил свой столбец с mysql.INTEGER
вот так:
from sqlalchemy.dialects import mysql
uniqueid = Column(mysql.INTEGER(20))
Однако, когда я пытаюсь зафиксировать объект с 14-значным uniqueid, я получаю следующее сообщение об ошибке: DataError: (DataError) (1264, "Out of range value for column 'uniqueid' at row 1")
, Когда я пытаюсь использовать более короткое целое число, которое не является длинным, у него не возникает проблем с передачей того же объекта в базу данных SQL. Я бегу Python 2.7, другие обсуждения long
Тип указывает, что он не должен вести себя иначе, чем int
кроме печати L
в конце номера. Последнее, что нужно сделать, это установить уникальный идентификатор на тот же короткий номер, но сделать его длинным, как в uniqueid = long(32423)
Я все еще могу зафиксировать объект в базе данных SQL.
1 ответ
Я не разгадал тайну того, почему mysql.INTEGER
класс не будет работать с числами, которые должны быть long
в Python 2.7, но практическим решением является использование SQLalchemy
"s BigInteger
класс, который, как следует из названия, может обрабатывать большие целые числа, в том числе long
,