ORM sqlalchemy 创建模式集列等于计算
Posted
技术标签:
【中文标题】ORM sqlalchemy 创建模式集列等于计算【英文标题】:ORM sqlalchemy create schema set column equal to calculation 【发布时间】: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)```
【问题讨论】:
看看context sensitive default functions
。
还有:***.com/q/11134539/6560549
【参考方案1】:
所以,我想这部分取决于您是否需要它在数据库中。
看起来Hybrid Attributes 允许您在 ORM 级别拥有“计算列”功能,但它实际上并没有在数据库中创建列。
否则,您可以使用 SQL 创建它,然后使用 FetchedValue 阻止 SQLAlchemy 尝试向其写入值,如 this SO answer 所示。
HTH
【讨论】:
以上是关于ORM sqlalchemy 创建模式集列等于计算的主要内容,如果未能解决你的问题,请参考以下文章
SQLAlchemy ORM:“AttributeError:无法在行中找到列”
Node.js 没有很好的 ORM 来管理 MySQL 模式/迁移......所以我可以使用 SQLAlchemy 来管理它吗?