我正在尝试使用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))
答案 0 :(得分:1)
我认为我说你正在努力设定精确度和规模?你试过了吗?
float = Column(FLOAT(precision=10, scale=2))
你对float_2和float_3的定义似乎没有使用导入的MySQL方言FLOAT类,并且可能在这里使用另一个类,这可能会增加混乱!
答案 1 :(得分:0)
如果您想获得适应性的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)
希望有帮助!