将一个虚拟列添加到反射表

时间:2015-02-13 04:55:40

标签: python oracle sqlalchemy

我有一个班级

class TableA(Base):
    __table__ = table_a
    __mapper_args__ = {
            'primary_key':[table_a.pk,],
            }

并希望将查询添加为查询时将看到的列(我只有读访问权限,因此无需写入)

new_col = func.regexp_substr(table_a.original, r'[^-]*').label("new_col")

有一种简单的方法吗?

2 个答案:

答案 0 :(得分:1)

请参阅Using column_property

class TableA(Base):
    __table__ = table_a
    __mapper_args__ = {
            'primary_key':[table_a.pk,],
            }

    # new_col = column_property(func.regexp_substr(original, r'[^-]*'))  # or
    new_col = column_property(func.regexp_substr(table_a.c.original, r'[^-]*'))

答案 1 :(得分:0)

使用:https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.FetchedValue

class TableA(Base):
    ........
    new_col = Column(DB.String, FetchedValue())
    ........