gpt4 book ai didi

python - SQLAlchemy 截断列=(整数)

转载 作者:可可西里 更新时间:2023-11-01 08:38:09 25 4
gpt4 key购买 nike

奇怪的问题:

我有一个反射(reflect) SQL alchemy 类,如下所示:

class Install(Base):
__tablename__ = 'install'
id = Column(Integer, primary_key=True)
ip_address = Column(Integer)

我使用以下方法将字符串表示形式 ("1.2.3.4") 转换为 int:

struct.unpack('!L', socket.inet_aton(ip_address))[0]

这确实有效,我已确保它能正确转换 IP。但是,当我查看数据库时,其中大部分已被截断为“2147483647”

2147483647我找不到如何停止这种截断,我知道 MySQL 可以处理这个,为什么 SQLAlchemy 对我的整数这样做?

提前致谢!

最佳答案

已修复!

对于 MySQL:确保您使用的是无符号 INT,然后使用 mysql.MSInteger(unsigned=True) 类型:

from sqlalchemy.databases import mysql
[..]
class Install(Base):
__tablename__ = 'install'
id = Column(Integer, primary_key=True)
ip_address = Column(mysql.MSInteger(unsigned=True))

关于python - SQLAlchemy 截断列=(整数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3300406/

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