如何使用Sqlalchemy创建一定长度的整数?

ben*_*inz 5 python mysql sqlalchemy flask-sqlalchemy

我尝试了两种方法,但都不起作用,我在谷歌上搜索并没有找到任何合适的解决方案。我的代码如下所示:

intField = Column(SmallInt(), length=5)
Run Code Online (Sandbox Code Playgroud)

错误说:

Unknown arguments passed to Column: ['length']
Run Code Online (Sandbox Code Playgroud)

我也尝试过,知道它不应该工作,这个解决方案:

intField = Column(SmallInt(5))
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为此 SqlAlchemy 数据类型不接受参数。

有任何想法吗?

[更新]

我使用的MySQL是数据库引擎,所以这里的解决方案是导入mysql自己的Integer类型,然后指定我想要的长度。

在上面的例子中,我只需要这样做:

from sqlalchemy.dialects import mysql

Integer = mysql.INTEGER 

class ...
    ...
    intField = Column(Integer(5))
Run Code Online (Sandbox Code Playgroud)

但我仍然想知道是否有更通用的方法?

iur*_*vio 3

MySQL 有DECIMAL/NUMERIC类型。

用于Decimal(5, 0)5 位数字的字段。

仅当您确实需要号码时才使用此选项。如果不会用这个字段做数学,更喜欢 aString(5)并验证数字(isdigit()是你的朋友)。

在 SQLAlchemy 中,将其作为Numeric字段处理。