繁体   English   中英

Sqlalchemy mysql FLOAT 精度和长度

[英]Sqlalchemy mysql FLOAT precision and length

我正在尝试使用 SQLAlchemy 对现有数据库进行建模,并且非常接近。

我的症结是 FLOAT 类型。

在 MySQL 数据库中它们是Float(10,2)

使用 SQLAlchemy,无论我如何尝试创建它们,我都无法复制它。

例子是:

from sqlalchemy.dialects.mysql import FLOAT
from sqlalchemy.ext.declarative import declarative_base

connection_string = 'xxxxx'

engine = create_engine(connection_string, echo=True, encoding='utf-8')
Base = declarative_base(engine)

class TestTable(Base):
    __tablename__ = 'my_test_table'
    float_1 = Column(FLOAT(length=10, precision=2))
    float_2 = Column(Float(10,2))
    float_3 = Column(Float(as_decimal=True))

如果你想获得自适应scale ,而不是固定scale ,我建议使用如下:

lat = Column(FLOAT(precision=10, decimal_return_scale=None))

更具体地讲,让我们考虑以下lat浮动: 45.7421773

以下是参数可能性:

lat_precision_adaptative_scale = Column(FLOAT(precision=32, decimal_return_scale=None))
lat_precision_fixed_scale = Column(FLOAT(precision=32, scale=10))
lat_no_precision_fixed_scale = Column(FLOAT(scale=3))
lat = Column(FLOAT)

它将插入以下结果: sql_alchemy_precision_scale_return_scale_parameter

希望能帮助到你!

我想说的对,就是您要设定精度和比例? 你有没有尝试过:

float = Column(FLOAT(precision=10, scale=2))

您对float_2和float_3的定义似乎没有使用导入的MySQL方言FLOAT类,并且在这里可能正在使用另一个类,这可能会增加混乱!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM