2013-10-23 59 views
3

我正在嘗試向SQLAlchemy添加一個大整數到MySQL表。正如answer解釋的那樣,你不能像那樣通過一個長度參數String。所以,下面這個問題的答案我已經與mysql.INTEGER定義我的專欄,像這樣:使用SQLAlchemy將具有長整數的對象提交到MYSQL

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類型的其他discussions表明它不應該與int有任何不同,除了在數字的末尾打印L。最後一條信息是,如果我將uniqueid設置爲相同的短號碼,但使其長一些,如​​uniqueid = long(32423),我仍然可以將該對象提交給SQL數據庫。

回答

1

沒解決爲什麼mysql.INTEGER類不會有要long在Python 2.7的數字工作的奧祕,但實際的解決方案是使用的SQLalchemyBigInteger類,顧名思義可以處理大整數,包括long

相關問題