gpt4 book ai didi

python - sqlalchemy.exc.DataError : (psycopg2. DataError) 整数超出范围

转载 作者:行者123 更新时间:2023-11-29 12:20:01 25 4
gpt4 key购买 nike

我正在尝试通过 SQLAchemy ORM 将数据保存到 postgresql 中。我遇到了以下错误:

sqlalchemy.exc.DataError: (psycopg2.DataError) integer out of range

我指出了错误的地方。我有一个很大的数字,它是 2468432255.0。如果我更改为更小的数字,例如 468432255.0,那么它就可以工作。

令我困惑的是:我将列定义为 volume = Column(Numeric)。据我了解,Numeric 应该能够处理这么大的数字。此外,我尝试了其他数据类型,如 BigInt 等......它们都给了我同样的错误。

有什么想法吗?

谢谢,承骏

最佳答案

您可以在本地代码的 SQlAlchemy 架构中定义任何您想要的内容,这并不意味着您要将数据插入其中的数据库会尊重它。

SQLAlchemy 中定义的模式由代码本身执行。

虽然数据库有自己的模式,当您尝试插入/删除等时也会强制执行它..(有自己的约束等..)SQLAlchemy 对此一无所知(直到您声明它)。

在我看来,您可以简单地自动生成 SQLAlchemy 模式 - 它将从数据库模式中获取数据库列名称和类型。

from sqlalchemy import create_engine

class SomeTable(Base):
"""
Class, that represents SomeTable
"""
__tablename__ = "my_table_in_db"

__table__ = Table(__tablename__, Base.metadata,
autoload=True,
autoload_with=create_engine(DB_URL))

在您创建一个SomeTable 对象之后,您可以简单地访问它的列

SomeTable.colname

colname 是当前存在于数据库中的列

关于python - sqlalchemy.exc.DataError : (psycopg2. DataError) 整数超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31394971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com