python - sqlalchemy 整数列大小

标签 python sqlalchemy

我在某处看到您可以为整数列定义列大小(例如整数(20)、整数(10)等),但由于某种原因,sqlalchemy 似乎在它生成的创建表查询中忽略了这些大小通过create_all():

class Job(Base):
    __tablename__ = "t_job"

    id = Column(Integer(20), Sequence('%s_id_seq' % __tablename__), primary_key=True, nullable=False)
    name = Column(String(30))
    company_id = Column(Integer(20), ForeignKey("t_company.id", ondelete="CASCADE"), nullable=False)

产生以下查询:

CREATE TABLE t_job (
        id INTEGER NOT NULL AUTO_INCREMENT,
        name VARCHAR(30),
        company_id INTEGER NOT NULL,
        PRIMARY KEY (id),
        FOREIGN KEY(company_id) REFERENCES t_company (id) ON DELETE CASCADE
)

如果这不是正确的方法,那么什么才是正确的方法?

最佳答案

此功能是 deprecated in version 0.7 .

如果您使用 MySQL,则可以使用 mysql.INTEGER 数据类型:

from sqlalchemy.dialects import mysql 

class Job(Base):
    __tablename__ = "t_job"

    id = Column(mysql.INTEGER(20), Sequence('%s_id_seq' % __tablename__), primary_key=True, nullable=False)
    name = Column(String(30))
    company_id = Column(Integer(20), ForeignKey("t_company.id", ondelete="CASCADE"), nullable=False)

关于python - sqlalchemy 整数列大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15804685/

相关文章:

python - Flask-Admin 在更新时删除辅助映射

python - sqlalchemy 完整性错误

python - Perl 在获取 HTML 页面方面胜过 Python?

python - 如何创建一个在特定时间结束的 Python 循环?

python - 如何使用Python将目录中的所有图像添加到word文档中

python-3.x - sqlalchemy 插入 - 不带编码的字符串参数

python - 更新对象时,我怎么称呼? session.add 是添加,update 在哪里?

python - SQLAlchemy 惰性声明式继承

python - Django 1.8 将日期字段更改为 DateTimeField

python - 按2列对np 2d数组进行排序(升序、降序)