3

我正在尝试将一个大整数添加到MySQL带有SQLAlchemy. 正如这个答案所解释的,你不能Integer像你一样传递一个长度参数String。因此,按照这个答案,我已经mysql.INTEGER像这样定义了我的专栏:

from sqlalchemy.dialects import mysql
uniqueid = Column(mysql.INTEGER(20))

但是,当我尝试提交具有 14 位唯一 ID 的对象时,我收到以下错误消息DataError: (DataError) (1264, "Out of range value for column 'uniqueid' at row 1"):当我尝试一个不长的较短整数时,将同一个对象提交到 SQL 数据库没有问题。我正在运行 python 2.7,该类型的其他讨论表明,除了在数字末尾打印 an 之外long,它的行为不应有任何不同。最后一条信息是,如果我将 uniqueid 设置为相同的短数字但将其设置为长,如 中,我仍然可以将对象提交到 SQL 数据库。intLuniqueid = long(32423)

4

1 回答 1

1

我没有解决这个mysql.INTEGER类为什么不能处理必须long在 python 2.7 中的数字的谜团,但实际的解决方案是使用SQLalchemy'BigInteger类,顾名思义,它可以处理大整数,包括long.

于 2013-10-24T18:25:50.567 回答