【问题标题】:ORM sqlalchemy create schema set column equal to calculationORM sqlalchemy 创建模式集列等于计算
【发布时间】:2019-08-21 17:58:19
【问题描述】:

在 sqlalchemy ORM 中,有没有办法将一列设置为等于其他两列的计算?这将类似于 MySQL 生成的列。例如:

class FactStockQuantity(Base):
    __tablename__ = 'test'
    id = Column(BIGINT(unsigned=True), primary_key=True, autoincrement=True)
    value1 = Column(INTEGER(unsigned=True), index=True)
    value2 = Column(INTEGER(unsigned=True), index=True)
    value3 = Column(INTEGER(unsigned=True), index=True, value= value1 + value2)```


【问题讨论】:

标签: python orm sqlalchemy


【解决方案1】:

所以,我想这部分取决于您是否需要它在数据库中。

看起来Hybrid Attributes 允许您在 ORM 级别拥有“计算列”功能,但它实际上并没有在数据库中创建列。

否则,您可以使用 SQL 创建它,然后使用 FetchedValue 阻止 SQLAlchemy 尝试向其写入值,如 this SO answer 所示。

HTH

【讨论】:

    猜你喜欢
    • 2017-02-26
    • 2019-09-03
    • 1970-01-01
    • 2020-05-10
    • 2020-12-22
    • 2013-06-23
    • 2022-12-16
    • 2020-09-21
    • 2020-07-20
    相关资源
    最近更新 更多